mysql为什么选innodb_为什么现在的MySQL都要使用innoDB引擎-Go语言中文社区
1.MyISAM
MyISAM是mysql5.1及之前版本的默認(rèn)引擎,很久未被更新。
使用表級鎖, 如果數(shù)據(jù)量大,一個(gè)插入操作鎖定表后,其他請求都將阻塞。
支持全文索引
支持查詢緩存保存表的總行數(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不支持(這個(gè)沒搞懂)
2.InnoDB
支持事務(wù)
支持行級鎖和表級鎖,能支持更多的并發(fā)量
mysql5.6版本開始支持 全文索引
查詢不加鎖,完全不影響查詢Innodb會(huì)對每個(gè)表設(shè)置一個(gè)事務(wù)計(jì)數(shù)器,里面存儲當(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)
總結(jié)
以上是生活随笔為你收集整理的mysql为什么选innodb_为什么现在的MySQL都要使用innoDB引擎-Go语言中文社区的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: CTF-web基础
- 下一篇: python下标从0开始_从零学Pyth