MySQL 5.1.38 がリリースされました。5.1シリーズはここ数ヶ月は毎月月初に必ずリリースされていて、MySQLリリース管理が安定したことを感じさせられます。
http://www.mysql.gr.jp/frame/modules/news/article.php?storyid=147
今回のリリースノートには、いつもの「変更点」の箇条書きだけでなく、今回のリリースから加えられた「InnoDB Plugin」についての説明が長々と書かれています。 英語は外国語にしか見えない私にとって(←当たり前だ)自分の理解のために例によって「超訳」してみました。 訳なんて言葉を使うとバチがあたりそうなので「私の理解を、なるべく原文の話の筋に沿って私の言葉で説明してみました」くらいの感じだと思って下さい。誤りや勘違いなどに気づいたかたは教えて下さい。
原文はここ:http://dev.mysql.com/doc/refman/5.1/en/news-5-1-38.html
以下超訳:
=====================================
今回リリースの MySQL 5.1.38 から、従来のビルトイン型InnoDBに加え、InnoDB プラグイン(以下 InnoDB Plugin) が含まれています。今回含まれている InnoDB Plugin のバージョンは 1.0.4 でベータ版レベルだと思ってください。
InnoDB Plugin は柔軟性と使いやすさのために以下のような新しい機能を提供します。パフォーマンスとスケーラビリティの向上や、信頼性と新しいケイパビリティ(性能)の強化など。
InnoDB Plugin の主な特徴として、"高速なインデックス生成" や テーブルおよびインデックスの圧縮、ファイルフォーマット管理、新しい INFORMATION_SCHEMA テーブル、キャパシティチューニング(容量チューニング?)、複数のバックグラウンド I/O スレッド、グループコミットなどがあります。
これらの機能については、InnoDB Plugin マニュアル(http://www.innodb.com/products/innodb_plugin/plugin-documentation) を参照して下さい。
MySQL上で InnoDB を使うための一般的な情報についてはマニュアルの 13.6 "The InnoDB Storage Engine" を参照ください。
InnoDB Plugin はソースとバイナリの両方のリリースに含まれています(ただし、RHEL3, RHEL4, SuSE 9 (x86, x86_64, ia64), generic Linux RPM のパッケージには含まれていません)。
InnoDB Plugin を使用するためには、ビルトインのInnoDB を無効にし、InnoDB Plugin を使用することを MySQL に指示する必要があります。
これには以下の行を my.cnf ファイルに記述します。
[mysqld] ignore-builtin-innodb plugin-load=innodb=ha_innodb_plugin.so
plugin-load オプションの "innodb" はプラグイン名、ha_innodb_plugin.so は プラグイン自体の shared object library の名前です。拡張子 .so は Unix系システムの場合であり、HP-UX や Windows では .sl や .dll となります。
サーバ起動時にプラグインファイルを見つけられない場合、プラグインファイルのあるパス名を指定して下さい。たとえば、MySQLが /usr/local/mysql にインストールされていて、プラグインファイルが その下の lib/mysql/plugin にある場合、my.cnf には以下のように書きます。
[mysqld] ignore-builtin-innodb plugin-load=innodb=ha_innodb_plugin.so plugin_dir=/usr/local/mysql/lib/mysql/plugin
以上の例では InnoDB Plugin のストレージエンジン部分をアクティベートする方法を説明したわけですが、このプラグインは色々は InnoDB関連 INFORMATION_SCHEMA テーブルを実装しています(どんなテーブルかについては http://www.innodb.com/doc/innodb_plugin-1.0/innodb-information-schema.html を参照ください)。
これらのテーブルを有効にするには、my.cnfの plugin-load のところに name=library の組を あといくつか指定する必要があります
[mysqld] ignore-builtin-innodb plugin-load=innodb=ha_innodb_plugin.so ;innodb_trx=ha_innodb_plugin.so ;innodb_locks=ha_innodb_plugin.so ;innodb_cmp=ha_innodb_plugin.so ;innodb_cmp_reset=ha_innodb_plugin.so ;innodb_cmpmem=ha_innodb_plugin.so ;innodb_cmpmem_reset=ha_innodb_plugin.so
ここでは見やすさのために plugin-load オプションを複数行で書きましたが、実際に my.cnf に記述する時には 1行で、オプション値のところにスペースが入らないようにして書いてください。
Windows の場合は .so の代わりに、それぞれの .dll を指定します。
サーバを起動したら、SHOW PLUGINS ステートメントで InnoDB Plugin がロードされていることを確認します。例として、ストレージエンジンと INFORMATION_SCHEMA テーブルをロードした場合、出力は以下のような行を含んだものになるでしょう。
mysql> SHOW PLUGINS; +---------------------+--------+--------------------+---------------------... | Name | Status | Type | Library ... +---------------------+--------+--------------------+---------------------... | InnoDB | ACTIVE | STORAGE ENGINE | ha_innodb_plugin.so ... | INNODB_TRX | ACTIVE | INFORMATION SCHEMA | ha_innodb_plugin.so ... | INNODB_LOCKS | ACTIVE | INFORMATION SCHEMA | ha_innodb_plugin.so ... | INNODB_CMP | ACTIVE | INFORMATION SCHEMA | ha_innodb_plugin.so ... | INNODB_CMP_RESET | ACTIVE | INFORMATION SCHEMA | ha_innodb_plugin.so ... | INNODB_CMPMEM | ACTIVE | INFORMATION SCHEMA | ha_innodb_plugin.so ... | INNODB_CMPMEM_RESET | ACTIVE | INFORMATION SCHEMA | ha_innodb_plugin.so ... +---------------------+--------+--------------------+---------------------...
ソースから MySQL をビルドする場合、InnoDB Plugin はデフォルトでビルドされるストレージエンジンのひとつです。通常のMySQLビルド方法、例えばマニュアルの 2.10節 "MySQL Installation Using a Source Distribution" に書いてあるような方法で MySQL をビルドすると、プラグインの shared object file が storage/innodb_plugin ディレクトリ下にできています。make install すればこのファイルがプラグインディレクトリにインストールされます。
あとは前段のバイナリディストリビューションでのやり方で説明したとおりに InnoDB Plugin を設定すればOKです。
=====================================
.