| 引擎 | 文件 | 用途 | 備註 |
|---|---|---|---|
| ISAM | .frm | 表結構定義 | 所有引擎通用 |
| .ISD | 資料文件 | 行資料 | |
| .ISM | 索引文件 | 索引樹 | |
| MyISAM | .frm | 結構定義 | |
| .MYD | 資料文件 | (MYData) | |
| .MYI | 索引文件 | (MYIndex) | |
| MERGE | .frm | 結構定義 | 引用多個同結構 MyISAM 表 |
| .MRG | 子表清單 | 每行一個子表名,可手工修改動態增減分片 | |
| BDB | .frm | 結構定義 | |
| .db | 資料+索引 | Berkeley DB 統一存儲 | |
| InnoDB | .frm | 結構定義 | 獨立表空間模式另產生 .ibd |
| 表空間文件 | 共享表空間 ibdata* / 獨立 .ibd | 資料+索引+MVCC+Undo Log | |
| MEMORY | .frm | 結構定義 | 資料與索引全在記憶體 |
| (無) | 無持久化文件 | 重啟丟失,僅適合暫存/緩存 |
CREATE TABLE → 建立 .frm + 引擎專屬文件。DROP TABLE → 刪除所有相關文件(InnoDB 共享表空間僅刪 .frm,資料標記刪除)。TRUNCATE TABLE → 刪除並重建文件(MyISAM/InnoDB 獨立表空間極快)。風險:Server 運行時移動/刪除文件會導致緩存不一致、崩潰。
合法離線操作(需停服務或 FLUSH TABLES WITH READ LOCK):
# 刪除 MyISAM 表
cd /var/lib/mysql/dbname
rm -f tbl_name.frm tbl_name.MYD tbl_name.MYI
# 遷移數據目錄
mv /var/lib/mysql /data/mysql
ln -s /data/mysql /var/lib/mysql
InnoDB 共享表空間嚴禁文件級搬移,需用 mysqldump 邏輯遷移或 innodb_file_per_table + DISCARD/IMPORT TABLESPACE。