💡
原文英文,约2400词,阅读约需9分钟。
📝
内容提要
介绍使用pgstattuple扩展识别Postgres表膨胀并提高数据库性能。Percona Distribution for PostgreSQL提供企业级组件,提供最佳性能。
🎯
关键要点
- Postgres表膨胀会降低数据库性能,可以通过移除表膨胀来提高性能。
- pgstattuple扩展用于识别膨胀的表,提供元组级统计信息。
- pgstattuple函数默认仅限于pg_stat_scan_tables角色执行,非超级用户需授予该角色。
- 创建pgstattuple扩展的最新版本为1.5。
- pgstattuple函数可以列出死元组比例高的表,并手动运行VACUUM以回收空间。
- pgstattuple函数返回关系的物理长度、死元组的百分比等信息,帮助判断是否需要VACUUM。
- pgstattuple输出不代表瞬时快照,因并发更新会改变输出。
- 删除行后,死元组数量增加,但表长度不变,VACUUM后可回收空间。
- VACUUM FULL后,表长度减少,表空间被操作系统回收。
- 可以使用查询列出死元组百分比高的表,并查看详细的元组统计信息。
- pgstatindex、pgstatginindex和pgstathashindex函数提供关于B-tree、GIN和HASH索引的信息。
- pgstattuple可用于元组级分析,识别膨胀表或VACUUM候选表。
➡️