MySQL DBファイル拡張子の意味

10月 27, 2009

MySQLにおいて、MyISAMでDB(テーブル)を作成するとできるファイル。
拡張子が3種類あるのだが、それぞれの役割は?

・テーブル名.frm  テーブル定義ファイル
列名などのテーブルのメタデータが記述されている。このファイルはストレートエンジン
に関係なく作成され、1つのテーブルとテーブル定義ファイルは1対1に対応する。

・テーブル名.MYD MyISAMテーブルデータファイル
実データを保存するファイル。1つのMyISAMテーブルに対して1つのMYDファイルが
作成される。

・ テーブル名.MYI  MyISAMインデックスデータファイル
インデックスを保存するファイル 。1つのMyISAMテーブルに対して1つのMYIファイル
が作成される。テーブルに対してひとつもインデックスを作成しない場合でも2つ以上
のインデックスを作成する場合でも、ひとつのMYIファイルが作成される。


これらのファイル群はすべてデータディレクトリに配置されるが、テーブル作成時の
コマンドのオプションで他の場所を指定することも可能。ファイルが扱えるサイズの上限は
OSのファイルシステムの制約がそのまま適用される。

・・・ってことだそうだ。
これらをOSのコマンドでcp -p でコピーすれば、DBそのものが複製可能。

InnoDBテーブルについてはまた別の管理仕様となり、「ibdata1」「ibdata2」…といった
ファイル名のデータファイルが、データディレクトリ配下に配置される。
このInnoDBデータファイルには、InnoDBテーブル、インデックスデータ、データディクショナリ
(テーブルのレコード数などの統計情報)、トランザクションのロールバックのための
データ領域(ロールバックセグメント)などが格納される。

むむ、ふ、ふかい。。
この辺りで切り上げておこう。

Categories: MySQL

No Responses so far | Have Your Say!

Comments are closed.