日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

ALTER TABLE語法用于修改表的結(jié)構(gòu),例如增加列、刪除列、修改列的數(shù)據(jù)類型、新增表屬性等。本文介紹ALTER TABLE語法在不同引擎中的使用方法和差異。

引擎與版本

ALTER TABLE語法適用于寬表引擎和時(shí)序引擎。無版本限制。

注意事項(xiàng)

ALTER TABLE操作不會(huì)鎖定表,在執(zhí)行DDL操作過程中整個(gè)表都是可以正常讀寫的。在讀寫過程中,可能會(huì)遇到超時(shí)報(bào)錯(cuò)或輕微抖動(dòng)和毛刺,可能是由于以下原因:

  • DDL操作變更時(shí),每個(gè)分片都會(huì)先關(guān)閉再打開并重新加載元數(shù)據(jù),該過程耗時(shí)很短,通常在十毫秒至數(shù)百毫秒之間。如果在該過程恰好有請(qǐng)求發(fā)送至重新打開的分片,則此時(shí)請(qǐng)求可能會(huì)有輕微抖動(dòng)或毛刺,建議您在業(yè)務(wù)低峰期執(zhí)行DDL變更操作。

  • 所有DDL操作都會(huì)在分片完成變更后才會(huì)返回執(zhí)行結(jié)果,因此在對(duì)規(guī)模較大的表執(zhí)行DDL操作時(shí),由于客戶端超時(shí)時(shí)間較短,可能會(huì)遇到超時(shí)報(bào)錯(cuò),但實(shí)際上DDL操作會(huì)在服務(wù)器上繼續(xù)執(zhí)行直至完成。

語法

alter_table_statement   ::=  ALTER TABLE table_name alter_table_instruction
alter_table_instruction ::=  ADD [COLUMN] column_name type [TAG]
                             | DROP COLUMN [ IF EXISTS ] column_name
                             | SET table_options
                             | COMPACT (idcName)?

差異說明

Lindorm寬表引擎和時(shí)序引擎的ALTER TABLE語法差異較大。差異對(duì)比請(qǐng)參見下表。

語法要素

寬表引擎

時(shí)序引擎

ADD COLUMN

COMPACT

說明

寬表引擎2.3.4及以上版本支持。

??

DROP COLUMN

說明

寬表引擎2.6.6及以上版本支持。

??

SET table_options

??

使用說明

ADD COLUMN(新增列)

寬表引擎和時(shí)序引擎均支持ADD COLUMN。

新增列有以下規(guī)則:

  • 新增的列不能聲明為主鍵。

  • 針對(duì)時(shí)序引擎,只支持新增標(biāo)簽列(TAG)和量測(cè)值列(FIELD),不支持新增時(shí)間戳列。

DROP COLUMN(刪除列)

僅版本為2.6.6及以上版本的寬表引擎支持DROP COLUMN。

說明

如果您無法通過控制臺(tái)升級(jí)至2.6.6及以上版本,請(qǐng)聯(lián)系Lindorm技術(shù)支持(釘釘號(hào):s0s3eg3)。

DROP COLUMN操作是異步執(zhí)行的,ALTER TABLE語句執(zhí)行成功后系統(tǒng)會(huì)立刻刪除目標(biāo)列,但列中的數(shù)據(jù)在系統(tǒng)完成COMPACT操作后才會(huì)被清理。如果您需要加速數(shù)據(jù)清理進(jìn)程,可以手動(dòng)執(zhí)行FLUSHCOMPACT操作。同時(shí),在數(shù)據(jù)完成清理前,您無法添加同名列。具體操作及說明,請(qǐng)參見常見問題

SET table_options(設(shè)置表屬性)

寬表引擎支持SET table_options。

具體的表屬性列表,請(qǐng)參見表屬性。您可以通過SHOW TABLE VARIABLES語句驗(yàn)證表屬性是否設(shè)置成功,詳細(xì)介紹請(qǐng)參見SHOW TABLE VARIABLES

重要

修改MUTABILITY和CONSISTENCY屬性,有以下兩點(diǎn)注意事項(xiàng):

  • 創(chuàng)建索引之前,支持修改MUTABILITY和CONSISTENCY。

  • 創(chuàng)建索引之后:

    • 無法修改MUTABILITY

    • 僅支持將CONSISTENCY的值從eventual修改為strong,但不支持從strong修改為eventual

示例請(qǐng)參見開啟動(dòng)態(tài)列

COMPACT(強(qiáng)制執(zhí)行Major Compaction)

僅版本為2.3.4及以上版本的寬表引擎支持Major Compaction。

執(zhí)行Major Compaction操作,會(huì)合并數(shù)據(jù)文件,清理已刪除或過期的數(shù)據(jù),釋放磁盤空間,提高讀寫性能,但Major Compaction操作會(huì)占用系統(tǒng)資源。

  • 不指定idcName:

    • 對(duì)單可用區(qū)實(shí)例來說,因?yàn)橹挥幸粋€(gè)IDC,是否指定idcName沒有區(qū)別。

    • 對(duì)多可用區(qū)實(shí)例來說,有2個(gè)IDC,不指定idcName時(shí)Major Compaction操作的執(zhí)行規(guī)則如下:

      • 寬表引擎版本低于2.6.4.2:只會(huì)對(duì)idc1進(jìn)行Major Compaction。

      • 寬表引擎為2.6.4.2及以上版本:默認(rèn)對(duì)所有的IDC進(jìn)行Major Compaction。

  • 指定idcName,表示對(duì)指定IDC進(jìn)行Major Compaction。idcName可指定多個(gè),多個(gè)idcName之間用半角逗號(hào)(,)分隔。

示例請(qǐng)參見執(zhí)行Major Compaction

示例

本文提供的示例基于CREATE TABLE文檔的建表示例語句。

CREATE TABLE sensor (
    device_id VARCHAR NOT NULL,
    region VARCHAR NOT NULL,
    time BIGINT NOT NULL,
    temperature DOUBLE,
    humidity BIGINT,
    PRIMARY KEY(device_id, region, time)
);

新增列

為表sensor新增一個(gè)列n1

ALTER TABLE sensor ADD COLUMN n1 DOUBLE;

刪除列

為表sensor刪除列n1

ALTER TABLE sensor DROP COLUMN IF EXISTS n1;

結(jié)果驗(yàn)證

執(zhí)行以下語句可以驗(yàn)證操作結(jié)果。

DESCRIBE table sensor;

開啟動(dòng)態(tài)列

開啟sensor表的動(dòng)態(tài)列。

ALTER TABLE sensor SET DYNAMIC_COLUMNS = 'true';
說明

關(guān)于動(dòng)態(tài)列的介紹,請(qǐng)參見動(dòng)態(tài)列

設(shè)置數(shù)據(jù)有效期

  • sensor表設(shè)置數(shù)據(jù)有效期,時(shí)間單位為秒(s)。

    ALTER TABLE sensor SET TTL = '2592000';
  • sensor表取消數(shù)據(jù)有效期。

    ALTER TABLE sensor SET TTL = '';

    結(jié)果驗(yàn)證

    在集群管理系統(tǒng)的概覽頁面,單擊目標(biāo)數(shù)據(jù)庫下的目標(biāo)表名,可在當(dāng)前詳情表格區(qū)域,查看ttl參數(shù)的值。如何進(jìn)入集群管理系統(tǒng),請(qǐng)參見登錄集群管理系統(tǒng)

設(shè)置壓縮算法

  • 設(shè)置sensor表的壓縮算法為ZSTD

    ALTER TABLE sensor SET COMPRESSION = 'ZSTD';
  • 設(shè)置sensor表的壓縮算法為NONE

    ALTER TABLE sensor SET COMPRESSION = 'NONE';

    結(jié)果驗(yàn)證

    在集群管理系統(tǒng)的概覽頁面,單擊目標(biāo)數(shù)據(jù)庫下的目標(biāo)表名。在當(dāng)前詳情表格區(qū)域,單擊查看表屬性,查看COMPRESSION參數(shù)的值。

設(shè)置冷熱分離

說明

關(guān)于冷熱分離的介紹,請(qǐng)參見冷熱分離介紹

設(shè)置冷熱分界線

按時(shí)間戳冷熱分離

設(shè)置表sensor表的冷熱分界線。寬表引擎會(huì)基于每一行數(shù)據(jù)實(shí)際寫入數(shù)據(jù)庫的時(shí)間戳(入庫時(shí)間戳)來計(jì)算是否需要將該數(shù)據(jù)歸檔至容量型云存儲(chǔ)。

-- 為表sensor開啟按按時(shí)間戳冷熱分離,設(shè)置冷熱分離時(shí)間點(diǎn)為一天。
ALTER TABLE sensor SET CHS = '86400', CHS_L2 = 'storagetype=COLD';

結(jié)果驗(yàn)證

您可以通過SHOW TABLE VARIABLES FROM sensor LIKE 'CHS%';語句,查看CHSCHS_L2參數(shù)的值。SHOW VARIABLES語法的詳細(xì)介紹,請(qǐng)參見SHOW VARIABLES

按自定義時(shí)間列冷熱分離

重要

按自定義時(shí)間列冷熱分離對(duì)自定義時(shí)間列存在限制和要求,在使用前請(qǐng)閱讀相關(guān)注意事項(xiàng),具體內(nèi)容請(qǐng)參見注意事項(xiàng)

將自定義時(shí)間列time設(shè)置為表sensor的冷熱分界線。寬表引擎會(huì)基于每一行數(shù)據(jù)的time列的時(shí)間戳(業(yè)務(wù)時(shí)間戳),來計(jì)算是否需要將該數(shù)據(jù)歸檔至容量型云存儲(chǔ)。

-- 為表sensor開啟按自定義列冷熱分離,設(shè)置冷熱分離時(shí)間點(diǎn)為一天,并按time列冷熱分離。
ALTER TABLE sensor SET CHS ='86400', CHS_L2 = 'storagetype=COLD', CHS_COLUMN = 'COLUMN=time';

結(jié)果驗(yàn)證

您可以通過SHOW TABLE VARIABLES FROM sensor LIKE 'CHS%';語句,查看CHSCHS_L2CHS_COLUMN參數(shù)的值。SHOW VARIABLES語法的詳細(xì)介紹,請(qǐng)參見SHOW VARIABLES

取消冷熱分界線

取消sensor表的冷熱分界線。

ALTER TABLE sensor SET CHS = '', CHS_L2 = '';

結(jié)果驗(yàn)證

您可以通過SHOW TABLE VARIABLES FROM sensor LIKE 'CHS%';語句,查看CHSCHS_L2參數(shù)的值。SHOW VARIABLES語法的詳細(xì)介紹,請(qǐng)參見SHOW VARIABLES

執(zhí)行Major Compaction

  • 對(duì)sensor表執(zhí)行Major Compaction。

    ALTER TABLE sensor COMPACT;
    說明

    如果實(shí)例為多可用區(qū)實(shí)例,需注意以下規(guī)則:

    • 如果寬表引擎版本低于2.6.4.2版本,未指定IDC時(shí),系統(tǒng)默認(rèn)對(duì)idc1進(jìn)行Major Compaction。

    • 如果寬表引擎為2.6.4.2及以上版本,系統(tǒng)默認(rèn)對(duì)所有的IDC進(jìn)行Major Compaction。

  • 對(duì)idc2執(zhí)行Major Compaction。

    ALTER TABLE sensor COMPACT 'idc2';
  • 對(duì)idc1和idc2執(zhí)行Major Compaction。

    ALTER TABLE sensor COMPACT 'idc1,idc2';

=