簡體   English   中英

oid 和 bytea 正在表中創建系統

[英]oid and bytea are creating system in tables

oid -> 創建一個表 pg_largeobjects 並在其中存儲數據
bytea -> 如果壓縮后的數據仍然超過 2000 字節,PostgreSQL 將可變長度數據類型拆分成塊,並根據https://www.cybertec-postgresql.com/en/將它們離線存儲在特殊的“TOAST 表”中二進制數據性能在 postgresql/

我不想要任何其他大數據表我想將它們存儲在我定義的表的列中,這可能嗎?

最好避免大對象。

使用bytea ,您可以通過更改列定義來防止 PostgreSQL 在 TOAST 表中存儲數據外行

ALTER TABLE tab ALTER col SET STORAGE MAIN;

然后 PostgreSQL 將壓縮該列但將其保留在主表中。

由於 PostgreSQL 中的塊大小為 8kB,並且一行始終存儲在單個塊中,這會將表行的大小限制在 8kB 以下(有一個塊 header 和其他開銷)。

我認為您正在嘗試解決一個非問題,並且您要求存儲大數據是不合理的。

暫無
暫無

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

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