Mysql存储引擎MyIsAM和InnoDB区别
Mysql 數據庫中,最常用的兩種引擎是innordb 和myisam。InnoDB 是Mysql 的默認存儲引擎。
兩者的區別:
1.事務處理上方面
MyISAM:強調的是性能,查詢的速度比InnoDB 類型更快,但是不提供事務支持。
InnoDB:提供事務支持。
2.外鍵
MyISAM:不支持外鍵,
InnoDB:支持外鍵。
3.鎖
MyISAM:只支持表級鎖,
InnoDB:支持行級鎖和表級鎖,默認是行級鎖,行鎖大幅度提高了多用戶并發操作的性能。innodb 比較適合于插入和更新操作比較多的情況,
而myisam 則適合用于頻繁查詢的情況。另外,InnoDB 表的行鎖也不是絕對的,如果在執行一個SQL 語句時,MySQL 不能確定要掃描的范圍,InnoDB 表同樣會鎖全表,
例如:update table set num=1 where name like “%aaa%”。
4.全文索引
MyISAM:支持全文索引,
InnoDB:不支持全文索引。innodb 從mysql5.6 版本開始提供對全文索引的支持。
5.表主鍵
MyISAM:允許沒有主鍵的表存在。
InnoDB:如果沒有設定主鍵,就會自動生成一個6字節的主鍵(用戶不可見)。
6. 表的具體行數
MyISAM:select count(*) from table,MyISAM 只要簡單的讀出保存好的行數。因為MyISAM 內置了一個計數器,count(*)時它直接從計數器中讀。
InnoDB:不保存表的具體行數,也就是說,執行select count(*) from table 時,InnoDB要掃描一遍整個表來計算有多少行。
轉載于:https://www.cnblogs.com/loren-Yang/p/7577262.html
總結
以上是生活随笔為你收集整理的Mysql存储引擎MyIsAM和InnoDB区别的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Swig在Mac OS X上的安装
- 下一篇: 知识体系地图模型:你是如何有效地学习?