您的位置:首页 > 数据库

Postgresql fillfactor

2017-09-19 11:42 337 查看
一个表的填充因子(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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: