全部產品
Search
文件中心

PolarDB:秒級加欄位

更新時間:Sep 07, 2024

本文介紹了什麼是秒級加欄位功能及如何使用。

傳統方法給表中增加列時,儲存節點上需要重建所有物理分區資料,會佔用大量系統資源。PolarDB-X新增的秒級加欄位(Instant Add Column)功能,在加列操作時只需變更表定義資訊,無需修改已有資料,協助您快速給任意大小的表增加列。

前提條件

此功能僅支援PolarDB-X 2.0版本的執行個體,並且要求執行個體版本為5.4.13-16504348及以上。

  • 對於DN版本為5.7的執行個體,該功能預設關閉,使用時需要顯式開啟,開啟方法請參見使用方法

  • 對於DN版本為8.0的執行個體,該功能自動開啟。

說明

DN版本的資訊請登入PolarDB分布式版控制台,在執行個體的配置與管理 > 基本資料介面,配置資訊區塊查看相容性獲得。

使用限制

  • 秒級加欄位不支援新增主鍵欄位(列)。

  • 具有ROW_FORMAT = COMPRESSED屬性的表不支援秒級加欄位。

    說明

    執行SHOW CREATE TABLE語句,可查看錶是否具有ROW_FORMAT = COMPRESSED屬性。

  • 具有全文索引的表不支援秒級加欄位。

  • 具有物理分區的表不支援秒級加欄位。

    說明

    執行SHOW CREATE TABLE語句,可查看錶是否具有LOCAL PARTITION BY子句。

  • 僅支援在所有列的最後執行INSTANT ADD COLUMN(僅在DN版本為5.7的執行個體中有此限制)。

  • 同一條ALTER TABLE語句中只能包含增加列操作,包含任何其它操作時則不支援。

使用方法

參數說明(DN版本為5.7)

參數名稱

層級

參數說明

loose_innodb_support_instant_add_column

Global

秒級加欄位功能的開關:

  • ON:開啟秒級加欄位功能;

  • OFF:關閉秒級加欄位功能(預設值)。

設定方法:

登入PolarDB分布式版控制台,在執行個體的配置與管理 > 參數設定 > 儲存層介面,設定loose_innodb_support_instant_add_column為on。

語句說明

當ALTER TABLE將演算法指定為INSTANT時,能夠為語句啟用秒級加欄位的功能,其它演算法,例如INPLACE或COPY,則不啟用。

  • 對於DN版本為8.0的執行個體,不指定ALGORITHM=INSTANT預設使用秒級加欄位功能,樣本:

    ALTER TABLE test ADD COLUMN col1 int;
  • 指定ALGORITHM=INSTANT以強制使用秒級加欄位功能,樣本:

    ALTER TABLE test ADD COLUMN col2 int, ALGORITHM=INSTANT;
  • 指定ALGORITHM=INPLACE或ALGORITHM=COPY,PolarDB-X不啟用秒級加欄位功能,樣本:

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