図1●MySQL Workbench 1.0.2Alpha起動画面
図1●MySQL Workbench 1.0.2Alpha起動画面
[画像のクリックで拡大表示]
図2●既存のMySQLデータベースを解析してViewに取り込み
図2●既存のMySQLデータベースを解析してViewに取り込み
[画像のクリックで拡大表示]
図3●既存のMySQLデータベースからViewに取り込んだ状態
図3●既存のMySQLデータベースからViewに取り込んだ状態
[画像のクリックで拡大表示]

 MySQL 4.0では,複数のテーブルタイプが選択できる。それぞれのテーブルタイプは,物理的なデータの格納方法やデータ処理の機能が異なっている。このように異なったテーブルタイプをサポートできるのは,異なるストレージ・エンジンを持っているからであり,MySQLの大きな特徴でもある。

 まもなくリリースされるMySQL 5.0では,さらに多くのストレージ・エンジンを搭載する。今回は,MySQL 5.0のストレージ・エンジンを紹介する。

これまでのストレージ・エンジン

 まず,MySQL 4.0に搭載されているストレージ・エンジンを説明する。MySQL 4.0では,表1のようなテーブルタイプに対応したストレージ・エンジンを使用できる。

表1●MySQL 4.0で使用できるテーブルタイプ

カテゴリ テーブルタイプ 概略
基本的なテーブルタイプ MyISAM MySQLの基本となるタイプ。テーブル単位のロック
BDB(BerkeleyDB) トランザクション,ページ単位のロックが可能
InnoDB トランザクション,行単位のロック,外部キーが可能
補助的なテーブルタイプ MERGE 同じ構造の複数のテーブル(MyISAMタイプ)を連結して1つのテーブルとする
HEAP メモリー上に作成されるテーブル。データベースの終了時に消滅する
Temporary 接続ごとにユニークなテーブルとして作成される。他の接続からは参照できない。接続終了ととも消滅する

 MySQL 4.0は,Temporaryタイプのテーブルを除いて,5種類のストレージ・エンジン(MyISAM,BDB,InnoDB,MEMORY(HEAP),MERGE)を搭載しており,テーブルタイプに対応したストレージ・エンジンで処理が実行される。

MySQL 5.0に搭載されるストレージ・エンジン

 MySQL 5.0ではストレージ・エンジンの種類は一挙に増える。従来のストレージ・エンジンに加え,新たに以下のストレージ・エンジンを搭載する。


表2●MySQL 5.0で使用できるストレージ・エンジン

ストレージ・エンジン 概略 実装されたバージョン
EXAMPLE Storage Engine評価用 4.1.3
ARCHIVE 小さい容量で大きな大量のデータを扱う 4.1.3
CSV CSVファイルにデータを格納する 4.1.4
NDB クラスタ構成用のStorage Engine 4.1.10a
BLACKHOLE 挿入されたデータを格納しないダミーのテーブルを作成する 4.1.11
FEDERATED 他のサーバのテーブルを参照(マウント)する 5.0.3

 FEDERATEDストレージ・エンジンは,MySQL 5.0からの新機能だ。他のMySQLサーバーに格納されているテーブルをローカルにあるテーブルと同様にアクセスできるようにする。

 変わったエンジンとしては,BLACKHOLEエンジンがある。挿入されたデータを格納せず,常にEmptyなので参照できない。一見無意味に思えるが,レプリケーションの際に有効である。BLACKHOLEタイプのテーブルにデータを追加すると,データは消えてしまうが,binary logには内容が記録される。そのため,マスタ側にはデータが残らないが,レプリケーション機能を通じてスレーブ側のテーブルにデータが格納される。

 次に,搭載されているストレージ・エンジンの確認方法と,新たなGUIデータベース設計ツール「MySQL Workbench」を紹介する。