DDL異步執(zhí)行語法擴(kuò)展
更新時(shí)間:
本文介紹PolarDB-X 2.0的DDL異步執(zhí)行語法擴(kuò)展。
背景
之前PolarDB-X 2.0的DDL異步執(zhí)行只能通過HINT
控制,例如:/*+TDDL:cmd_extra(PURE_ASYNC_DDL_MODE = true)*/
,這種方式存在兩個(gè)明顯的問題:
HINT
的格式和內(nèi)容比較復(fù)雜,不易理解和使用。使用命令行方式時(shí),需要
-c
參數(shù)HINT
才會(huì)生效,容易在編寫命令時(shí)遺漏。
為了解決以上問題,PolarDB-X 2.0擴(kuò)展了部分DDL的語法,新增ASYNC=TRUE
選項(xiàng)來支持異步執(zhí)行。
說明
DDL中同時(shí)使用ASYNC
和HINT
的情況下,以ASYNC
的為準(zhǔn)。
支持版本
PolarDB-X 2.0的計(jì)算節(jié)點(diǎn)的版本為5.4.18-17142802及以上。
支持的DDL類型
運(yùn)維DDL
continue ddl #job async=true;
cancel ddl #job async=true;
rollback ddl #job async=true;
pause ddl #job async=true;
pause rebalance #job async=true;
continue rebalance #job async=true;
cancel rebalance #job async=true;
OPTIMIZE TABLE
optimize table #tb async=true;
ANALYZE TABLE
analyze table #tb async=true;
ALTER TABLE
alter table #tb add index #index(a) async=true;
alter table #tb add global index #gsi(a) partition by key(a) partition async=true;
alter table #tb modify column a bigint async=true;
alter table #tb drop column a async=true;
alter table #tb drop index #index async=true;
alter table #tb split partition p1 aysnc=true;
alter table #tb move partition p1 to #dn aysnc=true;
alter table #tb set tablegroup=#tg aysnc=true;
...
說明
支持所有ALTER TABLE
語句。
ALTER TABLEGROUP
alter tablegroup #tg move partitions #p,#p to #dn aysnc=true;
alter tablegroup #tg split partition #p aysnc=true;
說明
支持所有ALTER TABLEGROUP
語句。
CREATE GLOBAL INDEX
create globle index on #tb(#col) partition_definition async=true;
CREATE INDEX
create index on #tb(#col) async=true;
不支持的DDL類型
CREATE TABLE
DROP TABLE
CREATE VIEW
DROP VIEW
CREATE PROCEDURE
DROP PROCEDURE
CREATE DATABASE
DROP DATABASE
CREATE TABLEGROUP
DROP TABLEGROUP
CREATE SEQUENCE
DROP SEQUENCE
ALTER SEQUENCE
文檔內(nèi)容是否對您有幫助?