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

DELETE

更新時(shí)間:

DELETE語句用于刪除目標(biāo)表指定列的行數(shù)據(jù)。本文為您介紹在Hologres中DELETE語句的用法。

命令介紹

DELETE命令的語法如下所示。

DELETE FROM <table_name> [ * ] [ [ AS ] <alias> ]
    [ WHERE <condition>  ]

參數(shù)說明如下表所示。

參數(shù)

描述

table_name

目標(biāo)表的名稱。

alias

別名。目標(biāo)表的替代名稱。

condition

刪除目標(biāo)表的條件。

技術(shù)原理

DELETE會(huì)先寫到內(nèi)存表(Mem Table),然后Flush成文件,如下圖所示。在此過程中,如果是行存表,被刪除的數(shù)據(jù)將會(huì)被Flush成一個(gè)新的小文件,在Compaction的時(shí)候做合并成文件塊;如果是列存表,系統(tǒng)會(huì)在內(nèi)存中存儲(chǔ)一張標(biāo)記表,然后Flush成標(biāo)記表文件,標(biāo)記表文件會(huì)記錄刪除的數(shù)據(jù)所在的文件號(file id)和行號(row id),然后在Compaction的時(shí)候做合并。更多原理請參見Hologres高性能寫入技術(shù)揭秘DELETE為了提高刪除(DELETE)的效率,盡量通過Fixed Plan執(zhí)行DELETE語句,詳情請參見Fixed Plan加速SQL執(zhí)行,或者建議為表設(shè)置合適的主鍵和索引(Distribution Key,Segment Key,Clustering Key),這樣就能快速定位到需要被刪除的文件和文件號,否則是全表掃描,對性能有一定的犧牲。對于按照主鍵點(diǎn)查的SQL(delete from tablename where pk =xxx),行存表的刪除效率要高于列存表。

使用限制

  • Hologres暫不支持直接刪除分區(qū)表父表。您需要?jiǎng)h除具體的分區(qū)表子表后,才可以刪除分區(qū)表父表。

  • 如果執(zhí)行整表數(shù)據(jù)的清空刪除,建議使用TRUNCATE語法,效率遠(yuǎn)比DELETE更高,參考 TRUNCATE

  • 推薦使用Fixed Plan優(yōu)化DELETE執(zhí)行效率,參考 DELETE場景

  • Hologres中的DELETE命令與PostgreSQL的一樣,使用標(biāo)記刪除,在下一次Compaction后,存儲(chǔ)空間才會(huì)被釋放。由于采用LSM結(jié)構(gòu)保存內(nèi)存狀態(tài),在DELETE執(zhí)行之后,有概率存留部分未達(dá)到Compaction閾值的臨時(shí)數(shù)據(jù)會(huì)繼續(xù)占用存儲(chǔ)空間,如需徹底刪除,建議使用TRUNCATE。

示例

刪除表的示例語句如下。

CREATE TABLE delete_test (
    id INT PRIMARY KEY,
    a INT,
    b text
);

INSERT INTO delete_test VALUES
(1, 10, 'a'),
(2, 30, 'b'),
(3, 50,  ''),
(4, 70, null);



DELETE FROM delete_test AS dt WHERE dt.a = 10;

DELETE FROM delete_test AS dt WHERE dt.b is null;

DELETE FROM delete_test AS dt WHERE dt.b='';
            

更多關(guān)于DELETE的詳情,請參見PostgreSQL DELETE

常見問題

在執(zhí)行DELETE命令時(shí),為什么監(jiān)控指標(biāo)中存儲(chǔ)用量上漲非常多,寫入完成后存儲(chǔ)用量又下降?delete存儲(chǔ)用量

根據(jù)DELETE的原理,DELETE時(shí)會(huì)將老數(shù)據(jù)做標(biāo)記,新數(shù)據(jù)會(huì)Flush成新的小文件,后臺會(huì)將這些小文件做Compaction,在Compaction的過程中就會(huì)將老數(shù)據(jù)給清理掉,并合并新數(shù)據(jù)。為了刪除的速度盡可能的快,后臺會(huì)先將數(shù)據(jù)寫完,待異步Compaction時(shí)再執(zhí)行壓縮和整理,因此會(huì)看到在數(shù)據(jù)刪除過程中,數(shù)據(jù)的存儲(chǔ)會(huì)一定的膨脹,等Compaction完成后存儲(chǔ)會(huì)下降,詳情請參見技術(shù)原理