本文介紹了什麼是秒級加欄位功能及如何使用。
傳統方法給表中增加列時,儲存節點上需要重建所有物理分區資料,會佔用大量系統資源。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 | 秒級加欄位功能的開關:
|
設定方法:
登入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;