秒級(jí)加字段
本文介紹了什么是秒級(jí)加字段功能及如何使用。
傳統(tǒng)方法給表中增加列時(shí),存儲(chǔ)節(jié)點(diǎn)上需要重建所有物理分片數(shù)據(jù),會(huì)占用大量系統(tǒng)資源。PolarDB-X新增的秒級(jí)加字段(Instant Add Column)功能,在加列操作時(shí)只需變更表定義信息,無(wú)需修改已有數(shù)據(jù),幫助您快速給任意大小的表增加列。
前提條件
此功能僅支持PolarDB-X 2.0版本的實(shí)例,并且要求實(shí)例版本為5.4.13-16504348及以上。
對(duì)于DN版本為5.7的實(shí)例,該功能默認(rèn)關(guān)閉,使用時(shí)需要顯式開(kāi)啟,開(kāi)啟方法請(qǐng)參見(jiàn)使用方法。
對(duì)于DN版本為8.0的實(shí)例,該功能自動(dòng)開(kāi)啟。
DN版本的信息請(qǐng)登錄PolarDB分布式版控制臺(tái),在實(shí)例的 界面,配置信息區(qū)塊查看兼容性獲得。
使用限制
秒級(jí)加字段不支持新增主鍵字段(列)。
具有ROW_FORMAT = COMPRESSED屬性的表不支持秒級(jí)加字段。
說(shuō)明執(zhí)行
SHOW CREATE TABLE
語(yǔ)句,可查看表是否具有ROW_FORMAT = COMPRESSED屬性。具有全文索引的表不支持秒級(jí)加字段。
具有物理分區(qū)的表不支持秒級(jí)加字段。
說(shuō)明執(zhí)行
SHOW CREATE TABLE
語(yǔ)句,可查看表是否具有LOCAL PARTITION BY
子句。僅支持在所有列的最后執(zhí)行
INSTANT ADD COLUMN
(僅在DN版本為5.7的實(shí)例中有此限制)。同一條
ALTER TABLE
語(yǔ)句中只能包含增加列操作,包含任何其它操作時(shí)則不支持。
使用方法
參數(shù)說(shuō)明(DN版本為5.7)
參數(shù)名稱 | 級(jí)別 | 參數(shù)說(shuō)明 |
loose_innodb_support_instant_add_column | Global | 秒級(jí)加字段功能的開(kāi)關(guān):
|
設(shè)置方法:
登錄PolarDB分布式版控制臺(tái),在實(shí)例的 界面,設(shè)置loose_innodb_support_instant_add_column為on。
語(yǔ)句說(shuō)明
當(dāng)ALTER TABLE將算法指定為INSTANT時(shí),能夠?yàn)檎Z(yǔ)句啟用秒級(jí)加字段的功能,其它算法,例如INPLACE或COPY,則不啟用。
對(duì)于DN版本為8.0的實(shí)例,不指定ALGORITHM=INSTANT默認(rèn)使用秒級(jí)加字段功能,示例:
ALTER TABLE test ADD COLUMN col1 int;
指定ALGORITHM=INSTANT以強(qiáng)制使用秒級(jí)加字段功能,示例:
ALTER TABLE test ADD COLUMN col2 int, ALGORITHM=INSTANT;
指定ALGORITHM=INPLACE或ALGORITHM=COPY,PolarDB-X不啟用秒級(jí)加字段功能,示例:
ALTER TABLE test ADD COLUMN col3 int, ALGORITHM=INPLACE; ALTER TABLE test ADD COLUMN col4 int, ALGORITHM=COPY;