TOP
>
サーバ構築・運用
> はじめに
徹底比較!! MySQLエンジン
第2回:MyISAMとInnoDB
著者:
NTTデータ 藤塚 勤也
2006/8/14
1
2
3
次のページ
はじめに
今回は、MySQLのストレージエンジンの中でも特に有名な「MyISAM」と「InnoDB」の2つを取り上げます。MyISAMはMySQLのデフォルトストレージエンジンで、ストレージエンジンを指定せずにテーブルを作成するとMyISAMが選択されます。もう一方のInnoDBエンジンは、MySQLに豊富なトランザクション機能を提供するストレージエンジンとして有名です。
まずはそれぞれのテーブルファイルの構造について解説し、最後にInnoDBのトランザクションについて解説します。
MySQLのディレクトリ構造
各ストレージエンジンのファイル構造を説明する前に、前知識としてMySQLのディレクトリ構造について説明します。
MySQLのデータベースディレクトリには、バイナリログと呼ぶデータベースの更新情報を格納するファイルと、2つのサブディレクトリが存在します(図1)。
図1:MySQLデータベースディレクトリ
「mysql」ディレクトリには権限テーブルと呼ばれるMySQLが使用するテーブル群を格納し、「test」ディレクトリは権限テーブルを初期化する際に作成されるデータベースのディレクトリです。ユーザが新たなデータベースの作成を行うと、MySQLはそのデータベース名のサブディレクトリをデータベースディレクトリ内に作成します。
この構造は、使用するストレージエンジンに関係なく共通です。
MyISAMのテーブルファイル
テーブルを作成する際にMyISAMを選択すると、データベース名のサブディレクトリ内に、「
テーブル名
.frm」「
テーブル名
.MYD」「
テーブル名
.MYI」の3つのファイルが作成されます。
テーブル名
.frmファイル
どのようなカラム構成にてできているかなどのテーブル構造のデータが格納されます。
テーブル名
.MYDファイル
テーブルのレコードデータが格納されます。
テーブル名
.MYIファイル:
そのテーブルに対して作成された複数のインデックスデータとテーブルの統計情報が格納されます。
表1:テーブルファイルの役割
次に示すは「MyISAM_TEST」データベース内に「TEST00」という名前のMyISAMテーブルを作成した時のファイル一覧です。「MyISAM_TEST」ディレクトリ内に「TEST00.frm」「TEST00.MYD」「TEST00.MYI」の3つのファイルが存在していることがわかると思います。
[root@localhost var]# ls MyISAM_TEST/
TEST00.MYD TEST00.MYI TEST00.frm
1
2
3
次のページ
著者プロフィール
株式会社NTTデータ 藤塚 勤也
基盤システム事業本部 オープンソース開発センタ シニアスペシャリスト。
日本タンデムコンピューターズ(現日本HP)を経て、2003年よりNTTデータにてOSS分野に参画。日頃はオリジナルOSSの開発や、OSSを用いたシステム構築への技術支援に従事。「RDBMS解剖学」(翔泳社)を共著。
INDEX
第2回:MyISAMとInnoDB
はじめに
MyISAMテーブルの特長
InnoDBテーブルの特徴