すべてのプロダクト
Search
ドキュメントセンター

PolarDB:インスタントADD COLUMN

最終更新日:Sep 18, 2024

このトピックでは、Instant ADD COLUMN機能と、この機能を使用してテーブルに列を即座に追加する方法について説明します。

従来の方法でテーブルに列を追加する場合、データノードはすべての物理シャードのデータを再構築する必要があります。 このプロセスは、大量のシステムリソースを必要とします。 PolarDB-Xは、インスタントADD COLUMN機能を提供します。 この機能は、テーブルの定義のみを更新し、既存のデータを変更しないことで、テーブルに列を追加します。 この機能により、テーブルのサイズに関係なく、テーブルに列をすばやく追加できます。

前提条件

インスタンスは、V5.4.13-16504348で実行されるPolarDB-X 2.0インスタンスです。

  • デフォルトでは、データノード (DN) バージョンが5.7のインスタンスではこの機能は無効になっています。 このようなインスタンスでこの機能を有効にするには、support_instant_add_columnパラメーターをONに設定する必要があります。 詳細については、このトピックの「使用方法」セクションをご参照ください。

  • DNバージョンが8.0のインスタンスの場合、この機能は自動的に有効になります。

説明

DNバージョンに関する情報を取得するには、PolarDB-Xコンソールにログインし、インスタンスの [構成管理] > [基本情報] ページに移動し、[構成情報] セクションの [互換性] パラメーターの値を表示します。

制限事項

  • この機能を使用して主キー列を追加することはできません。

  • この機能を使用して、ROW_FORMAT属性がCOMPRESSEDに設定されているテーブルに列を追加することはできません。

    説明

    SHOW CREATE TABLEステートメントを実行して、テーブルのROW_FORMAT属性がCOMPRESSEDに設定されているかどうかを確認します。

  • この機能を使用して、フルテキストインデックスを含むテーブルに列を追加することはできません。

  • この機能を使用して、物理パーティションを含むテーブルに列を追加することはできません。

    説明

    SHOW CREATE TABLEステートメントを実行して、テーブルにLOCAL PARTITION BY句が含まれているかどうかを確認します。

  • DNバージョンが5.7のインスタンスの場合、INSTANT ADD COLUMNステートメントを実行して、既存の列の最後にのみ列を追加できます。

  • この機能を有効にするには、ALTER TABLEステートメントに列を追加する操作のみを含める必要があります。 同じALTER TABLEステートメントに他の操作が含まれている場合、この機能は有効になりません。

使用量

パラメータ (DNバージョン: 5.7)

パラメーター

レベル

説明

loose_innodb_support_instant_add_column

グローバル

インスタントADD COLUMN機能を有効にするかどうかを指定します。 有効な値:

  • ON

  • OFF (デフォルト)

インスタントADD COLUMN機能を有効にするには、次の操作を実行します。

PolarDB-Xコンソールにログインし、 [構成管理] > [パラメーター設定] > [ストレージレイヤー] ページに移動し、loose_innodb_support_instant_add_columnパラメーターをonに設定します。

ステートメント

列を追加するときにインスタントADD COLUMN機能を有効にするには、ALTER TABLE add columnステートメントでALGORITHM=Instantを指定します。 NPLACEやCOPYなどの他のアルゴリズムを指定すると、Instant ADD COLUMN機能は無効になります。

  • 既定では、インスタントADD COLUMN機能は、DNバージョンが8.0のインスタンスに対して有効になっています。 ALTER TABLE ADD COLUMNステートメントでALGORITHM=INSTANTを指定しない場合でも、この機能は有効になります。 例:

    ALTER TABLE test ADD COLUMN col1 int;
  • インスタントADD COLUMN機能を強制的に有効にするには、ALTER TABLE ADD COLUMNステートメントでALGORITHM=Instantを指定します。 例:

    ALTER TABLE test ADD COLUMN col2 int, ALGORITHM=INSTANT;
  • インスタントADD COLUMN機能を無効にするには、ALTER TABLE ADD COLUMNステートメントでALGORITHM=INPLACEまたはALGORITHM=COPYを指定します。 例:

    ALTER TABLE test ADD COLUMN col3 int, ALGORITHM=INPLACE;
    ALTER TABLE test ADD COLUMN col4 int, ALGORITHM=COPY;