在 PostgreSql 中重建索引
Reindexing in PostgreSql
如何确定 Postgres 数据库中所有索引需要重新编制索引?我需要安排一个作业来重新编制 Postgres 中的索引索引,我应该多久 运行 一次?
索引的统计信息收集可以处理自动清理部分的自动分析,还是我们应该 运行 单独处理?
您通常不需要重新索引 PostgreSQL 索引。随着时间的推移,它们会变得有些碎片化,但这是正常的。
也就是说,您可以使用 pgstattuple
扩展中的 pgstatindex
函数来检查索引:
CREATE EXTENSION pgstattuple;
SELECT avg_leaf_density FROM pgstatindex('items_1_pkey');
avg_leaf_density
------------------
88.92
(1 row)
那个索引是完全密集的,密度与fillfactor
(90)差不多。如果该值低于 20 左右,请考虑重建索引。
如何确定 Postgres 数据库中所有索引需要重新编制索引?我需要安排一个作业来重新编制 Postgres 中的索引索引,我应该多久 运行 一次?
索引的统计信息收集可以处理自动清理部分的自动分析,还是我们应该 运行 单独处理?
您通常不需要重新索引 PostgreSQL 索引。随着时间的推移,它们会变得有些碎片化,但这是正常的。
也就是说,您可以使用 pgstattuple
扩展中的 pgstatindex
函数来检查索引:
CREATE EXTENSION pgstattuple;
SELECT avg_leaf_density FROM pgstatindex('items_1_pkey');
avg_leaf_density
------------------
88.92
(1 row)
那个索引是完全密集的,密度与fillfactor
(90)差不多。如果该值低于 20 左右,请考虑重建索引。