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


14.11.3 オンライン DDL の SQL 構文

通常、InnoDB テーブルに対して ALTER TABLE ステートメントを使用する場合、オンライン DDL を有効にするために特殊なことをする必要はありません。インプレースで実行できるか、並列 DML を許可するか、またはその両方の DDL 操作の種類については、表14.5「DDL 操作のオンラインステータスのサマリー」を参照してください。一部の種類には、構成設定または ALTER TABLE 句の特定の組み合わせが必要になります。

ALTER TABLE ステートメントの LOCK および ALGORITHM 句を使用することによって、特定のオンライン DDL 操作のさまざまな側面を制御できます。これらの句はステートメントの最後に現れ、テーブルやカラムの指定とはカンマで区切られます。LOCK 句は、テーブルへの並列アクセスの程度を微調整するのに役立ちます。ALGORITHM 句は、主にパフォーマンス比較を目的にしているほか、既存の DDL コードで何らかの問題が発生した場合の古いテーブルコピー動作へのフォールバックとしても使用されます。例:

  • テーブルの読み取り、書き込み、またはその両方を誤って不可能にしてしまうことがないようにするには、ALTER TABLE ステートメントで LOCK=NONE (読み取りと書き込みの両方を許可する) や LOCK=SHARED (読み取りを許可する) などの句を指定できます。要求されたレベルの並列性が使用できない場合、操作はただちに停止します。

  • パフォーマンスを比較するには、old_alter_table 構成オプションを設定する代わりに、1 つのステートメントを ALGORITHM=INPLACE で、もう 1 つのステートメントを ALGORITHM=COPY で実行できます。

  • テーブルをコピーした ALTER TABLE を実行することによってサーバーが結合されてしまう可能性をなくすには、インプレースメカニズムを使用できなければステートメントがただちに停止するように ALGORITHM=INPLACE を含めることができます。インプレースで実行できるか、またはできない DDL 操作のリストについては、表14.5「DDL 操作のオンラインステータスのサマリー」を参照してください。

LOCK 句の詳細は、セクション14.11.2「オンライン DDL でのパフォーマンスと並列性に関する考慮事項」を参照してください。オンライン DDL の使用の完全な例については、セクション14.11.5「オンライン DDL の例」を参照してください。


User Comments
Sign Up Login You must be logged in to post a comment.