postgresql table 設置存儲方式 set storage

os: centos 7.4
db: postgresql 10.10

set storage

postgres=# create table blog (id int,title text,content text,memo text);  
CREATE TABLE
postgres=# 
postgres=# \d+ blog
                                    Table "public.blog"
 Column  |  Type   | Collation | Nullable | Default | Storage  | Stats target | Description 
---------+---------+-----------+----------+---------+----------+--------------+-------------
 id      | integer |           |          |         | plain    |              | 
 title   | text    |           |          |         | extended |              | 
 content | text    |           |          |         | extended |              | 
 memo    | text    |           |          |         | extended |              | 

postgres=# alter table blog alter title set storage main;
ALTER TABLE
postgres=# alter table blog alter content set storage external;
ALTER TABLE                                
postgres=# alter table blog alter memo set storage extended;
ALTER TABLE
postgres=# 
postgres=# \d+ blog
                                    Table "public.blog"
 Column  |  Type   | Collation | Nullable | Default | Storage  | Stats target | Description 
---------+---------+-----------+----------+---------+----------+--------------+-------------
 id      | integer |           |          |         | plain    |              | 
 title   | text    |           |          |         | main     |              | 
 content | text    |           |          |         | external |              | 
 memo    | text    |           |          |         | extended |              | 

plain:避免壓縮或行外存儲。
main:允許壓縮,不允許行外存儲。
external:允許行外存儲,不允許壓縮。
extended:允許壓縮和行外存儲。

SET STORAGE
這種形式爲一列設置存儲模式。這會控制這列是會被保持在線內還是放在一個 二級TOAST表中,以及數據是否應被壓縮。
對於 integer之類的定長、線內、未壓縮值必須使用 PLAIN。
MAIN用於線內、可壓縮的 數據。
EXTERNAL用於外部的、未壓縮數據。
而 EXTENDED用於外部的、壓縮數據。對於大部分支持 非-PLAIN存儲的數據類型,EXTENDED 是默認值。
使用EXTERNAL將會讓很大的 text和bytea之上的子串操作運行得更快, 但是代價是存儲空間會增加。注意SET STORAGE本身並不改變 表中的任何東西,它只是設置在未來的表更新時要追求的策略。

參考:
http://postgres.cn/docs/10/sql-altertable.html
http://postgres.cn/docs/10/storage-toast.html

發佈了732 篇原創文章 · 獲贊 70 · 訪問量 51萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章