簡體   English   中英

PostgreSQL中的表大小和數組文本[]

[英]Tablesize and array text[] in postgresql

好,這是問題。 我有一些我創建的表格

創建表數學(id1 bytea,id2 bytea,注釋文本[])

有更多的列,但這無關緊要。 創建后,我在其中插入〜500k行,並通過幾個查詢對其進行修改,每個查詢包含

array_append(評論,'關於當前計算步驟的一些評論')

畢竟,我得到的表大小約為1.6Gb

如果可以的話

ALTER TABLE數學ALTER COLUMN注釋類型varchar []使用comment :: varchar [];

該表的大小顯着下降,約為300Mb

為什么會這樣呢? 在不更改列類型的情況下如何獲得相似的結果?

注意:我嘗試在創建時將列設置為varchar []類型,但是在執行所有查詢后,它的大小仍然變為1.6Gb,並且轉換為text []會將其再次減小為300Mb。

ALTER TABLE .. ALTER TYPE ..進行全表重寫,從而壓縮表和索引。

VACUUM FULL tablename;可以得到相同的結果VACUUM FULL tablename; 代替。

textvarchar具有完全相同的存儲。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM