SQL實踐1 藉著學校的資料庫實驗,來對之前學習的SQL語言進行實踐和總結。 實驗環境: macOS 13.2 (22D49) mysql Ver 8.0.32 for macos13.0 on arm64 (Homebrew) DataGrip 2022.3.3 一. DataGrip連接本地My ...
MyISAM | InnoDB | |
---|---|---|
事務 | X | √ |
行鎖 | X | √ |
外鍵 | X | √ |
全文搜索 | √ | X |
表空間的大小 | 較小 | 較大,約為 MyISAM 的2倍 |
MyISAM
- MyISAM 是 MySQL 5.5 版本之前的預設引擎,支持全文檢索、壓縮、空間函數等,但是不支持事務和行級鎖,所以一般用於有大量查詢少量插入的場景來使用。而且 MyISAM 不支持外鍵,索引和數據是分開存儲的。
InnoDB
- InnoDB 是 MySQL 5.5 版本之後的預設引擎,基於聚簇索引建立的,支持事務、外鍵、行級鎖,並且通過 MVCC 來支持高併發,索引和數據存儲在一起。
如何選擇
-
如果需要事務,選擇 InnoDB,不需要則選擇 MyISAM。
-
如果大部分表操作都是查詢,選擇 MyISAM,有寫又有讀選 InnoDB。
-
如果系統崩潰導致數據難以恢復,且成本高,不要選擇 MyISAM。
參考鏈接