MySQL中InnoDB與MyISAM對比

2021-09-27 07:41:11 字數 665 閱讀 8353

innodb與myisam是mysql中常用的兩種儲存引擎,該兩種儲存引擎的對比如下:

innodb支援事務,myisam不支援事務。事務是一種高階處理方式,在對資料執行增刪改等過程中若出錯,可設定回滾點還原。

innodb適合頻繁修改及涉及到安全性較高的應用;myisam適合查詢及插入為主的應用。

innodb支援外來鍵,myisam不支援外來鍵。

在mysql5.5之後innodb是預設引擎。

innodb不支援full text型別的索引。

innodb 中不儲存表的具體行數,也就是說,執行select count() from table時,innodb需掃瞄整個表來計算有多少行,但是myisam只要簡單的讀出儲存好的行數即可。

注意:當count()語句包含 where條件時,兩種表的操作是一樣的。都必須掃瞄整張表。

對於auto_increment型別的字段,innodb必須包含只有該字段的索引,但是在myisam表中,可以和其他字段一起建立聯合索引。

清空整個表時,innodb不會重新建立表,一行一行的刪除,效率低;而myisam會重新簡建立表。

innodb支援行鎖。假如在執行乙個sql語句時mysql不能確定要掃瞄的範圍,innodb表同樣會鎖全表,例如update table set num=1 where name like 「%aaa%」

MySQL中MyISAM與InnoDB區別

mysql中myisam與innodb區別 myisam innodb 事物處理 不支援支援 外來鍵不支援 支援行鎖 不支援支援 全文索引 支援不支援 表的具體行數 儲存表的具體行數 掃瞄表來計算行數 delete表時 先drop表,然後重建表 一行一行的刪除 索引和資料 分開的,並且索引是有壓縮的...

MySQL中MyISAM與InnoDB區別及選擇

innodb 支援事務處理等 不加鎖讀取 支援外來鍵 支援行鎖 不支援fulltext型別的索引 不儲存表的具體行數,掃瞄表來計算有多少行 delete 表時,是一行一行的刪除 innodb 把資料和索引存放在表空間裡面 跨平台可直接拷貝使用 innodb中必須包含auto increment型別欄...

MySQL中MyISAM與InnoDB區別及選擇

支援事務處理等 不加鎖讀取 支援外來鍵 支援行鎖 不支援fulltext型別的索引 不儲存表的具體行數,掃瞄表來計算有多少行 delete 表時,是一行一行的刪除 innodb 把資料和索引存放在表空間裡面 跨平台可直接拷貝使用 innodb中必須包含auto increment型別欄位的索引 很難...