MyISAM和InnoDB兩種引擎主要區別

2021-10-07 07:27:14 字數 656 閱讀 2890

myisam引擎是mysql 5.1及之前版本的預設引擎,它的特點是:

innodb在mysql 5.5後成為預設索引,它的特點是:

總體來講,myisam適合select密集型的表,而innodb適合insertupdate密集型的表

眾多資料中都說innodb使用的是行級鎖,但實際上是有限制的。只有在你增刪改查時匹配的條件字段帶有索引時,innodb才會使用行級鎖,在你增刪改查時匹配的條件欄位不帶有索引時,innodb使用的將是表級鎖。因為當你匹配條件欄位不帶有所引時,資料庫會全表查詢,所以這需要將整張表加鎖,才能保證查詢匹配的正確性。在生產環境中我們往往需要滿足多人同時對一張表進行增刪改查,所以就需要使用行級鎖,所以這個時候一定要記住為匹配條件欄位加索引。

提到行級鎖和表級鎖時我們就很容易聯想到讀鎖和寫鎖,因為只有觸發了讀寫鎖,我們才會談是進行行級鎖定還是進行表級鎖定。那麼什麼時候觸發讀鎖,就是在你用select 命令時觸發讀鎖,什麼時候觸發寫鎖,就是在你使用update,delete,insert時觸發寫鎖,並且使用rollback或commit後解除本次鎖定。

為了幫助大家更好的區分讀寫鎖和(表級鎖行級鎖),我將讀寫鎖叫做許可權鎖(決定了加鎖後使用者有哪些操作許可權),將表級鎖行級鎖叫做物件索(決定將鎖加在某一行還是整張表)。

兩種引擎 INNODB 於 MYISAM的區別?

1 區別 a 事物處理 myisam是非事務安全型的,innodb 是事務安全型 的 支援事務處理等高階處理 b 鎖機制不同 myisam是表級鎖 innodb是行級鎖 c select update,delete,insert的操作 myisam 如果執行大量的select,myisam是最好的選...

InnoDB和MyIsAM的區別

myisam型別不支援事務處理等高階處理,而innodb型別支援 這是網上對myisam和innodb的解釋,很抽象吧,我們用白話的方式解釋一下 其實也比較簡單 所謂事務處理,就是原子性操作。打個比方,支援事務處理的innodb表,建設乙個中,發帖是給積分的。你發了乙個帖子執行乙個insert語句,...

MyISAM和InnoDB的區別

mysql預設採用的是myisam。myisam不支援事務,而innodb支援。innodb的autocommit預設是開啟的,即每條sql語句會預設被封裝成乙個事務,自動提交,這樣會影響速度,所以最好是把多條sql語句顯示放在begin和commit之間,組成乙個事務去提交。innodb支援資料行...