Postgresql fillfactor

Posted 恩蒙

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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

 

以上是关于Postgresql fillfactor的主要内容,如果未能解决你的问题,请参考以下文章

Sqlserver 数据库自动编号主键怎么设计?

如何在php脚本中接受PostgreSQL数据库数量?

您如何测量 SQL 填充因子值

需要将整个 postgreSQL 数据库加载到 RAM 中

Mac + virtualenv + pip + postgresql = 错误:找不到 pg_config 可执行文件

Flask 编写http接口api及接口自动化测试