Documentation Home
MySQL 5.6 リファレンスマニュアル
Download this Manual
PDF (US Ltr) - 26.8Mb
PDF (A4) - 26.9Mb
HTML Download (TGZ) - 7.2Mb
HTML Download (Zip) - 7.2Mb


14.11 InnoDB とオンライン DDL

オンライン DDL 機能は、MySQL 5.1 および MySQL 5.5 で使用可能な機能に基づいて構築されています。機能は、テーブルコピー動作を行わないように CREATE INDEXDROP INDEX を最適化しました。MySQL 5.6 で導入されたオンライン DDL 機能は、ほかのタイプの多くの ALTER TABLE 操作を、テーブルコピー、DDL が進行中の DML 操作のブロック化、またはその両方を行わないように拡張しています。

オンライン DDL 機能には、次の利点があります。

  • インデックスやカラム定義を変更する場合は常に、テーブルを数分または数時間にわたって使用できなくすることが現実的でないビジー状態の本番環境での応答性と可用性を向上させます。

  • テーブルへのアクセスを完全にブロックするか (LOCK=EXCLUSIVE 句)、クエリーを許可するが、DML は許可しないか (LOCK=SHARED 句)、またはテーブルへの完全なクエリーおよび DML アクセスを許可するか (LOCK=NONE 句) どうかを選択することによって、DDL 操作中のパフォーマンスと並列性のバランスを調整できます。LOCK 句を省略するか、または LOCK=DEFAULT を指定すると、MySQL は、操作の種類に応じてできるだけ高い並列性を許可します。

  • テーブルの新しいコピーを作成するのではなく、可能な場合はインプレースで変更を行うことによって、テーブルのコピーおよびすべてのセカンダリインデックスの再構築のためのディスク領域の使用量や I/O オーバーヘッドの一時的な増加が回避されます。

MySQL クラスタの NDB ストレージエンジンは、オンラインのテーブルスキーマ変更もサポートしていますが、InnoDB のオンライン操作に使用されるものとは互換性のない独自の構文を使用します。詳細は、セクション13.1.7.2「MySQL Cluster での ALTER TABLE オンライン操作」を参照してください。