MySQL 8.0 リファレンスマニュアル MySQL NDB Cluster 8.0 を含む

このページは機械翻訳したものです。

15.12 InnoDB とオンライン DDL

オンライン DDL 機能では、即時およびインプレースのテーブル変更および同時 DML がサポートされます。 この機能の利点は次のとおりです:

注記

ALGORITHM=INSTANT のサポートは、ADD COLUMN および MySQL 8.0.12 のその他の操作で使用できます。

通常、オンライン DDL を有効にするために特別な操作を行う必要はありません。 デフォルトでは、MySQL は操作を許可されているとおりに即時またはインプレースで実行しますが、ロックはできるかぎり少なくなります。

ALTER TABLE ステートメントの ALGORITHM 句および LOCK 句を使用して、DDL 操作の側面を制御できます。 これらの句は、テーブルおよびカラムの指定からカンマで区切ってステートメントの最後に配置されます。 例:

ALTER TABLE tbl_name ADD PRIMARY KEY (column), ALGORITHM=INPLACE, LOCK=NONE;

LOCK 句は、インプレースで実行される操作に使用でき、操作中のテーブルへの同時アクセスの程度を微調整する場合に役立ちます。 即時に実行される操作では、LOCK=DEFAULT のみがサポートされます。 ALGORITHM 句は、主にパフォーマンスの比較と、問題が発生した場合の古いテーブルコピー動作へのフォールバックを目的としています。 例: