1. 程式人生 > >Mysql 存儲引擎中InnoDB與Myisam的主要區別

Mysql 存儲引擎中InnoDB與Myisam的主要區別

sql mysq where條件 擴展 擴展名 sel 系統 sele sans

innodb 支持事務功能,myisam 不支持。

Myisam 的執行速度更快,性能更好。
2、select ,update ,insert ,delete 操作 MyISAM:如果執行大量的SELECT,MyISAM是更好的選擇 InnoDB:如果你的數據執行大量的INSERT或UPDATE,出於性能方面的考慮,應該使用InnoDB表
3、鎖機制不同 InnoDB 為行級鎖,myisam 為表級鎖。 註意:當數據庫無法確定,所找的行時,也會變為鎖定整個表。 如: update table set num = 10 where username like "%test%";
4、查詢表的行數不同
MyISAM:select count(*) from table,MyISAM只要簡單的讀出保存好的行數,註意的是,當count(*)語句包含where條件時,兩種表的操作是一樣的 InnoDB InnoDB 中不保存表的具體行數,也就是說,執行select count(*) from table時,InnoDB要掃描一遍整個表來計算有多少行
5、物理結構不同 MyISAM :每個MyISAM在磁盤上存儲成三個文件。第一個文件的名字以表的名字開始,擴展名指出文件類型。 .frm文件存儲表定義。 數據文件的擴展名為.MYD (MYData)。 索引文件的擴展名是.MYI (MYIndex)
InnoDB:基於磁盤的資源是InnoDB表空間數據文件和它的日誌文件,InnoDB 表的大小只受限於操作系統文件的大小,一般為 2GB

Mysql 存儲引擎中InnoDB與Myisam的主要區別