Postgresql fillfactor

一个表的填充因子(fillfactor)是一个介于 10 和 100 之间的百分数。100(完全填充)是默认值。如果指定了较小的填充因子,INSERT 操作仅按照填充因子指定的百分率填充表页。每个页上的剩余空间将用于在该页上更新行,这就使得 UPDATE 有机会在同一页上放置同一条记录的新版本,这比把新版本放置在其它页上更有效。对于一个从不更新的表将填充因子设为 100 是最佳选择,但是对于频繁更新的表,较小的填充因子则更加有效。

 

PostgresSQL 使用Heap-Only Tuple 技术 会在旧行与新行之间建立一个链表,这样一来就不需要更新索引了,索引项仍会指向旧行,通过链表可以找到新行。因此Heap-Only Tuple 的链表不能跨数据块。

 

create table t_fillfactor01(id int ,name varchar  , blog text ) WITH (fillfactor=70);
CREATE TABLE
new_test=# \d+ t_fillfactor01
                         Table "public.t_fillfactor01"
 Column |       Type        | Modifiers | Storage  | Stats target | Description 
--------+-------------------+-----------+----------+--------------+-------------
 id     | integer           |           | plain    |              | 
 name   | character varying |           | extended |              | 
 blog   | text              |           | extended |              | 
Options: fillfactor=70

 

posted @ 2017-09-19 11:42  Eamon13  阅读(1572)  评论(0编辑  收藏  举报