首页 > 代码库 > PostgreSQL 索引膨胀

PostgreSQL 索引膨胀

索引膨胀,主要针对B-tree而言

索引膨胀的几个来源:

大量删除发生后,导致索引页面稀疏,降低了索引的使用效率;

PG9.0之前的版本,vacuum full会同样导致索引页面稀疏;

长时间运行的事务,禁止vacuum对表的清理工作二导致页面稀疏状态一致保持。

注意REINDEX会造成全表锁,不要在系统繁忙的时候操作

查看索引占用的空间:

select pg_relation_size(oid)/1024/1024,relname from pg_class where relkind=’i’ order by pg_relation_size(oid) desc limit 20;

查看特定索引大小

select pg_relation_size(‘tbl_test_p1_pk’)/1024/1024;

重建特定索引

reindex index tbl_test_p1_pk;

更新数据库的统计信息

analyze tbl_test;

查看特定索引大小

select pg_relation_size(‘tbl_test_p1_pk’)/1024/1024;

 

PostgreSQL 索引膨胀