Mysql 存儲引擎————MyISAM、InnoDB 使用及區別

MySQL存儲引擎:

1、InnoDB存儲引擎

  • 默認事務型引擎,最重要最廣泛的存儲引擎,性能非常優秀。

  • 數據存儲在共享表空間,可以通過配置分開。也就是多個表和索引都存儲在一個表空間中,可以通過配置文件改變此配置。

  • 對主鍵查詢的性能高於其他類型的存儲引擎。

  • 內部做了很多優化,從磁盤讀取數據時會自動構建hash索引,插入數據時自動構建插入緩衝區。

  • 通過一些機制和工具支持真正的熱備份。

  • 支持崩潰後的安全恢復。

  • 支持行級鎖。

  • 支持外鍵。

2、MyISAM存儲引擎

  • 擁有全文索引、壓縮、空間函數。

  • 不支持事務和行級鎖、不支持崩潰後的安全恢復。

  • 表存儲在兩個文件,MYD和MYI。

  • 設計簡單,某些場景下性能很好,例如獲取整個表有多少條數據,性能很高。

  • 全文索引不是很常用,不如使用外部的ElasticSearch或Lucene。


3、MyISAM和InnoDB的區別

  • InnoDB支持事務,MyISAM不支持;

  • InnoDB數據存儲在共享表空間,MyISAM數據存儲在文件中;

  • InnoDB支持行級鎖,MyISAM只支持表鎖;

  • InnoDB支持崩潰後的恢復,MyISAM不支持;

  • InnoDB支持外鍵,MyISAM不支持;

  • InnoDB不支持全文索引,MyISAM支持全文索引;


ps:大多數場景下建議使用InnoDB存儲引擎。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章