自 MySQL 5.5 起,InnoDB 成為預設儲存引擎。它兼顧高可靠性 (ACID 交易) 與高效能 (行級鎖、MVCC),是生產環境首選。本文系統梳理 InnoDB 核心架構、六大優勢、儲存機制與版本演進。
mysql> CREATE TABLE innodb (id INT PRIMARY KEY, name VARCHAR(20)); Query OK, 0 rows affected (1.02 sec) mysql> SHOW CREATE TABLE innodb; +--------+------------------------------------------------------------------+ | Table | Create Table | +--------+------------------------------------------------------------------+ | innodb | CREATE TABLE `innodb` ( | | | `id` int(11) NOT NULL, | | | `name` varchar(20) DEFAULT NULL, | | | PRIMARY KEY (`id`) | | ) ENGINE=InnoDB DEFAULT CHARSET=utf8 | | | | +--------+------------------------------------------------------------------+
未指定 ENGINE 時,CREATE TABLE 預設使用 InnoDB。
COMMIT/ROLLBACK、崩潰恢復、雙重寫緩衝innodb_file_per_table=ON (預設開啟):每表獨立 .ibd 檔案 (含資料+索引),便於管理與回收空間innodb_file_per_table=OFF:所有表共用系統表空間 ibdata1 (可多檔案/分區)ALGORITHM=INPLACE,無鎖變更結構JSON_EXTRACT 優化SPATIAL INDEXINFORMATION_SCHEMA 新增監控視圖ERROR 1146 (42S02): Table 'db.tbl' doesn't exist
.frm 與 .ibd 是否配對、表空間 ID 是否匹配DISCARD TABLESPACE / IMPORT TABLESPACE 或從備份恢復深入掌握 InnoDB 內核機制,是成為 MySQL 專家、解決疑難效能問題的必經之路。