在一个简单的例子中,我试图理解索引FILLFACTOR参数。我有一个表,通常每十天只更新一次,但是更新相当繁重(需要5-6小时)。
现在,我倾向于将索引放在表的一个列上,更新数据,然后使用FILLFACTOR = 100再次创建索引。
这是个很好的做法吗?我不确定这一点,因为我不理解FILLFACTOR的一般概念。默认情况下,这是90%,他们说这是执行更新和插入所必需的。
但是我尝试用FILLFACTOR = 100创建一个索引,然后更新一些行并添加一个新的,它执行得很好。但我已经把autovacuum变成了off。但是,运行ANALYZE只需要3秒。
那么,填充因子留下的自由空间是如何工作的呢?
发布于 2015-10-19 12:16:04
表中的空闲空间可用于加速表上的某些类型的更新,通过避免扩展表来加快插入速度,并提高索引增长的效率。
如果您的表不经常更改,并且不介意每次重新索引它(或者删除&重新创建索引),那是完全没有问题的。当扫描索引时,填充因子100将节省一点I/O,除非在索引表上插入/更新,否则空闲空间对您没有用处。
https://dba.stackexchange.com/questions/118453
复制相似问题