Mysql存储引擎MyIsAM和InnoDB区别
Mysql 數(shù)據(jù)庫(kù)中,最常用的兩種引擎是innordb 和myisam。InnoDB 是Mysql 的默認(rèn)存儲(chǔ)引擎。
兩者的區(qū)別:
1.事務(wù)處理上方面
MyISAM:強(qiáng)調(diào)的是性能,查詢(xún)的速度比InnoDB 類(lèi)型更快,但是不提供事務(wù)支持。
InnoDB:提供事務(wù)支持。
2.外鍵
MyISAM:不支持外鍵,
InnoDB:支持外鍵。
3.鎖
MyISAM:只支持表級(jí)鎖,
InnoDB:支持行級(jí)鎖和表級(jí)鎖,默認(rèn)是行級(jí)鎖,行鎖大幅度提高了多用戶(hù)并發(fā)操作的性能。innodb 比較適合于插入和更新操作比較多的情況,
而myisam 則適合用于頻繁查詢(xún)的情況。另外,InnoDB 表的行鎖也不是絕對(duì)的,如果在執(zhí)行一個(gè)SQL 語(yǔ)句時(shí),MySQL 不能確定要掃描的范圍,InnoDB 表同樣會(huì)鎖全表,
例如:update table set num=1 where name like “%aaa%”。
4.全文索引
MyISAM:支持全文索引,
InnoDB:不支持全文索引。innodb 從mysql5.6 版本開(kāi)始提供對(duì)全文索引的支持。
5.表主鍵
MyISAM:允許沒(méi)有主鍵的表存在。
InnoDB:如果沒(méi)有設(shè)定主鍵,就會(huì)自動(dòng)生成一個(gè)6字節(jié)的主鍵(用戶(hù)不可見(jiàn))。
6. 表的具體行數(shù)
MyISAM:select count(*) from table,MyISAM 只要簡(jiǎn)單的讀出保存好的行數(shù)。因?yàn)?/span>MyISAM 內(nèi)置了一個(gè)計(jì)數(shù)器,count(*)時(shí)它直接從計(jì)數(shù)器中讀。
InnoDB:不保存表的具體行數(shù),也就是說(shuō),執(zhí)行select count(*) from table 時(shí),InnoDB要掃描一遍整個(gè)表來(lái)計(jì)算有多少行。
轉(zhuǎn)載于:https://www.cnblogs.com/loren-Yang/p/7577262.html
總結(jié)
以上是生活随笔為你收集整理的Mysql存储引擎MyIsAM和InnoDB区别的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Swig在Mac OS X上的安装
- 下一篇: oracle数据库访问order by不