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存儲引擎。