下面介紹每種數據表文件:
ISAM數據表是最原始的數據表,有三個文件,分別是:
.frm,存放數據表的結構定義;
.ISD,數據文件,存放數據表中的各個數據行的內空;
.ISM,索引文件,存放數據表的所有索引信息。
MyISAM數據表是ISAM數據表的繼承者,也有三個文件,分別是:
.frm,結構定義文件;
.MYD,數據文件;
.MYI,索引文件。
MERGE數據表是一個邏輯結構,代表一組結構完全相同的MyISAM數據表構成的集合。它在文件系統中有二個文件,分別是:
.frm,結構定義文件;
.MRG,構成MERGE表的MyISAM數據表清單,每個MyISAM數據表名占一行。也就是說可通過改變該表的內容來改變MERGE數據表的結構。修改前請先刷新緩存(flush tables),但不建議這樣修改MERGE數據表。
BDB數據表用兩個文件來表示,分別是:
.frm,結構定義文件;
.db,數據表數據和索引文件
InnoDB由於采用表空間的概念來管理數據表,所以它只有一個與數據表對應.frm文件,同一目錄下的其它文件表示為表空間,存儲數據表的數據和索引。
HEAP數據表是一個存在於內存中的表,所以它的數據和索引都存在於內存中,文件系統中只有一個.frm文件,以定義結構。
了解MySQL數據表在文件系統中表現形式後,我們可知道,創建、修改或刪除數據表,其實就是對這些文件進行操作。例如一些數據表(除InnoDB和HEAP數據表外),我們可直接在文件系統中刪除相應的文件來刪除數據表。
% cd datadir
% rm -f mydb/mydb.*
以上命令可刪除mydb數據庫中的mydb數據表。