[英]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.