MySQL

次期プロダクションリリースとなるMySQL 5.5で注目される機能のひとつに、InnoDBストレージエンジンの改善がある。どういった改善が実施され、どういった新機能が追加されているのかがOracleのMySQLブログMySQL 5.5: Improved manageability, efficiency for InnoDBにおいて紹介がある。

説明によれば、MySQL 5.5のInnoDBはアーキテクチャが新しく再構築され、内部設定を簡単に制御できるように改善されているという。この結果、パフォーマンス、スケーリング、ストレージを従来よりも簡単にモニタリングできるようになったほか、調整も実施しやすく、また特定のユースケースやアプリケーション負荷に特化した最適化を実施しやすくなったと説明されている。

これら特徴に加えてMySQL 5.5のInnoDBには次の特徴があると紹介がある。

  • 従来の実装と異なり、対象テーブルのデータをコピーすることなくインデックスを作成したり削除したりできるようになった。インデックスの追加や削除の操作が従来よりも高速化されている。
  • 新しい圧縮オプションによって必要とされるストレージ容量の削減とIO負荷の軽減によるアプリケーションスループットの改善を実現 (新しいBarracudaファイルフォーマットが必須)
  • 可変長のカラムやサイズの大きいオブジェクトの効率のいい扱いを実現するオプションを提供 (新しいBarracudaファイルフォーマットが必須)

ストレージサイズの削減とスループットの向上の双方を実現できる新しい圧縮オプションは注目度が高い。ただし、この新機能を使うには新しいBarracudaファイルフォーマットが必須になるため、従来のデータベースファイルからの移行が必要になる。この機能を使いたい場合にはデータベースを移行させる必要がある。

またMySQL 5.5のInnoDBでは次の7つのスキーマテーブルが追加されていると紹介がある。

  • INNODB_CMP: 圧縮テーブルに関する情報を提供。
  • INNODB_CMP_RESET : INNODB_CMPと同じだが、読み込んだあとにデータがリセットされる。
  • INNODB_CMPMEM: バッファプールにある圧縮テーブルに関する情報を提供。
  • INNODB_CMPMEM_RESET: INNODB_CMPMEMと同じだが、読み込んだあとにデータがリセットされる。
  • INNODB_TRX: 実行されているすべてのトランザクションに関する情報を提供。
  • INNODB_LOCKS: トランザクションが要求しているロックに関する情報を提供。
  • INNODB_LOCKS_WAITS: ロックを待っているトランザクションに関する情報を提供。

MySQLの次期プロダクションリリースはMySQL 5.5系から実施されることになるとみられる。MySQLがOracle傘下に入ってから初のプロダクションリリースになる見通しで、エンタープライズ向けの機能が強化された注目すべきバージョンになるとみられる。