TOP
>
サーバ構築・運用
> MySQLのディレクトリ構造とファイル
徹底比較!! PostgreSQL vs MySQL
第2回:データ構造の比較
著者:
NTTデータ 藤塚 勤也
2006/4/18
前のページ
1
2
3
4
次のページ
MySQLのディレクトリ構造とファイル
MySQLのデータベースディレクトリを作成した時のディレクトリ構造とそこに存在するファイル群を次に示します。
図2:MySQLのデータベースディレクトリ
データベースディレクトリには、バイナリログと呼ばれるデータベースの更新情報を格納するファイル、InnoDBエンジン用のトランザクションログ、テーブルデータ、インデックスデータを格納するデータファイルが存在します。このうちInnoDB用のデータファイルをテーブルスペースと呼びます。
またデータベースディレクトリには、2つのサブディレクトリが存在します。「mysql(mysqlデータベース)」は権限テーブルと呼ばれるMySQLが使用するテーブル群を格納するためのディレクトリで、「test(testデータベース)」は権限テーブルを初期化する際に作成されるデータベースのディレクトリです。
ユーザが新たなデータベースの作成を行うと、MySQLはそのデータベース用のサブディレクトリをデータベースディレクトリ内に作成します。なおテーブルを作成する場合は、ストレージエンジンの選択によって、作成されるファイルの種類が異なります。
MyISAMエンジンを選択すると、データベース名のサブディレクトリ内に、「
テーブル名
.frm」「
テーブル名
.MYD」「
テーブル名
.MYI」の3つのファイルが作成されます。この3つのファイルは次に示す役割を担っています。
テーブル名
.frm
どのようなカラム構成にてできているかなどのテーブル構造のデータが格納されます。
テーブル名
.MYD
テーブルのレコードデータが格納されます。
テーブル名
.MYI
そのテーブルに対して作成された複数のインデックスデータとテーブルの統計情報が格納されます。
表2:MyISAMエンジンの場合のサブディレクトリ
一方InnoDBエンジンを選択すると、データベース名のサブディレクトリ内には「
テーブル名
.frm」ファイルのみが作成されます。InnoDBエンジンのテーブルのレコードデータやインデックスデータは、データベースディレクトリ内に存在するテーブルスペースの中に格納されます。なお、テーブル構造のデータは「
テーブル名
.frm」ファイル内だけでなく、テーブルスペース内にも格納されます。
前のページ
1
2
3
4
次のページ
著者プロフィール
株式会社NTTデータ 藤塚 勤也
基盤システム事業本部 オープンソース開発センタ シニアスペシャリスト。
日本タンデムコンピューターズ(現日本HP)を経て、2003年よりNTTデータにてOSS分野に参画。日頃はオリジナルOSSの開発や、OSSを用いたシステム構築への技術支援に従事。「RDBMS解剖学」(翔泳社)を共著。
INDEX
第2回:データ構造の比較
はじめに
MySQLのディレクトリ構造とファイル
データ量が増えた場合の変化
MySQL+MyISAMエンジンのテーブルの特徴