1、myisam只支持表級鎖 Innodb支持行級鎖
2、myisam不支持事務 Innodb支持事務
3、myisam不支持外鍵 Innodb支持外鍵
4、myisam支持全文索引,Innodb不支持
5、myisam本身存儲了表的總數據行,Innodb沒有存儲,查總行數myisam更快,如果加了查詢條件兩者就沒有區別了
Myisam和Innodb究竟該怎么選擇
數據庫有外鍵嗎?
需要事務支持嗎?
需要全文索引嗎?
Innodb的行鎖模式有以下幾種:共享鎖,排他鎖,意向共享鎖(表鎖),意向排他鎖(表鎖),間隙鎖。
注意:當語句沒有使用索引,innodb不能確定操作的行,這個時候就使用的意向鎖,也就是表鎖
聚簇索引和非聚簇索引
聚簇索引主要應用於Innodb
非聚簇索引主要應用於Myisam
表數據按照索引的順序來存儲的,也就是說索引項的順序與表中記錄的物理順序一致。對於聚集索引,葉子結點即存儲了真實的數據行,不再有另外單獨的數據頁。 在一張表上最多只能創建一個聚集索引,因為真實數據的物理順序只能有一種。
非聚集索引。表數據存儲順序與索引順序無關。對於非聚集索引,葉結點包含索引字段值及指向數據頁數據行的邏輯指針,其行數量與數據表行數據量一致。