MySQL常見的兩種存儲引擎:MyISAM與InnoDB的愛恨情仇

Java面試通關手冊(Java學習指南,歡迎Star,會一直完善下去,歡迎建議和指導):https://github.com/Snailclimb/Java_Guidegit

一 MyISAM

1.1 MyISAM簡介

MyISAM是MySQL的默認數據庫引擎(5.5版以前),由早期的 ISAM (Indexed Sequential Access Method:有索引的順序訪問方法)所改良。雖然性能極佳,並且提供了大量的特性,包括全文索引、壓縮、空間函數等,但MyISAM不支持事務和行級鎖,並且最大的缺陷就是崩潰後沒法安全恢復。不過,5.5版本以後,MySQL引入了InnoDB(另外一種數據庫引擎)。github

下面這張圖只是想表達的意思是如今大多數時候咱們使用的都是InnoDB存儲引擎,可是在某些狀況下使用MyISAM更好,好比:MyISAM更適合讀密集的表,而InnoDB更適合寫密集的的表。 在數據庫作主從分離的狀況下,常常選擇MyISAM做爲主庫的存儲引擎。
5.5版本以後,MySQL引入了InnoDB面試

1.2 MyISAM特色

  • 不支持行鎖(MyISAM只有表鎖),讀取時對須要讀到的全部表加鎖,寫入時則對錶加排他鎖;
  • 不支持事務
  • 不支持外鍵
  • 不支持崩潰後的安全恢復
  • 在表有讀取查詢的同時,支持往表中插入新紀錄
  • 支持BLOB和TEXT的前500個字符索引,支持全文索引
  • 支持延遲更新索引,極大地提高了寫入性能
  • 對於不會進行修改的表,支持 壓縮表 ,極大地減小了磁盤空間的佔用

補充概念:數據庫

相關文章
相關標籤/搜索