mysql为什么选innodb_为什么现在的MySQL都要使用innoDB引擎-Go语言中文社区
1.MyISAM
MyISAM是mysql5.1及之前版本的默認引擎,很久未被更新。
使用表級鎖, 如果數據量大,一個插入操作鎖定表后,其他請求都將阻塞。
支持全文索引
支持查詢緩存保存表的總行數,使用count(*) 并且無where子句的時候可以很快返回結果,但是實際使用時基本不會無where子句
簡要:不支持事務安全沒有事務日志和分類,因此它只將數據寫入Linux文件緩存并希望能最終寫入磁盤。如果系統在這個過程中崩潰或者丟失一些數據,MyISAM表會經常出現無法啟動或者警告你需要修復表;它恢復數據的方法有限并且經常會丟失數據。另外,MyISAM也很難正確的備份,備份的時候通常需要鎖住整個系統的數據,這就意味著每天網站都要宕機或者無法使用一段時間。
MyISAM表允許在定期列中進行全文檢索,而InnoDB不支持(這個沒搞懂)
2.InnoDB
支持事務
支持行級鎖和表級鎖,能支持更多的并發量
mysql5.6版本開始支持 全文索引
查詢不加鎖,完全不影響查詢Innodb會對每個表設置一個事務計數器,里面存儲當前最大的事務ID.當一個事務提交時,InnoDB會使用MVCC中系統事務ID最大的事務ID跟新當前表的計數器.只有比這個最大ID大的事務能使用查詢緩存,其他比這個ID小的事務則不能使用查詢緩存.另外,在InnoDB中,所有有加鎖操作的事務都不使用任何查詢緩存
簡要:支持事務安全事務日志記錄真正的數據庫事務,但更重要的是數據崩潰恢復和回滾。基于 InooDB方式的IO,能給予更安全數據保護和更好性能表現
總結
以上是生活随笔為你收集整理的mysql为什么选innodb_为什么现在的MySQL都要使用innoDB引擎-Go语言中文社区的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: CTF-web基础
- 下一篇: python下标从0开始_从零学Pyth