1.MyISAM
MyISAM是mysql5.1及之前版本的默認(rèn)引擎,很久未被更新动漾。
使用表級(jí)鎖丁屎, 如果數(shù)據(jù)量大旱眯,一個(gè)插入操作鎖定表后晨川,其他請(qǐng)求都將阻塞删豺。
支持全文索引
支持查詢緩存
保存表的總行數(shù)共虑,使用count(*) 并且無where子句的時(shí)候可以很快返回結(jié)果呀页,但是實(shí)際使用時(shí)基本不會(huì)無where子句
簡要:不支持事務(wù)安全
沒有事務(wù)日志和分類妈拌,因此它只將數(shù)據(jù)寫入Linux文件緩存并希望能最終寫入磁盤。如果系統(tǒng)在這個(gè)過程中崩潰或者丟失一些數(shù)據(jù)尘分,MyISAM表會(huì)經(jīng)常出現(xiàn)無法啟動(dòng)或者警告你需要修復(fù)表猜惋;它恢復(fù)數(shù)據(jù)的方法有限并且經(jīng)常會(huì)丟失數(shù)據(jù)培愁。另外著摔,MyISAM也很難正確的備份竭钝,備份的時(shí)候通常需要鎖住整個(gè)系統(tǒng)的數(shù)據(jù)梨撞,這就意味著每天網(wǎng)站都要宕機(jī)或者無法使用一段時(shí)間。
MyISAM表允許在定期列中進(jìn)行全文檢索卧波,而InnoDB不支持
2.InnoDB
支持事務(wù)
支持行級(jí)鎖和表級(jí)鎖,能支持更多的并發(fā)量
mysql5.6版本開始支持 全文索引
Innodb會(huì)對(duì)每個(gè)表設(shè)置一個(gè)事務(wù)計(jì)數(shù)器,里面存儲(chǔ)當(dāng)前最大的事務(wù)ID.當(dāng)一個(gè)事務(wù)提交時(shí),InnoDB會(huì)使用MVCC中系統(tǒng)事務(wù)ID最大的事務(wù)ID跟新當(dāng)前表的計(jì)數(shù)器.只有比這個(gè)最大ID大的事務(wù)能使用查詢緩存,其他比這個(gè)ID小的事務(wù)則不能使用查詢緩存.另外,在InnoDB中,所有有加鎖操作的事務(wù)都不使用任何查詢緩存
簡要:支持事務(wù)安全
事務(wù)日志記錄真正的數(shù)據(jù)庫事務(wù)港粱,但更重要的是數(shù)據(jù)崩潰恢復(fù)和回滾〉┣基于 InooDB方式的IO,能給予更安全數(shù)據(jù)保護(hù)和更好性能表現(xiàn)