PG使用插件pg_squeeze收缩膨胀的表和索引

0    165    2

Tags:

👉 本文共约1627个字,系统预计阅读时间或需7分钟。

简介

PostgreSQL中大量更新或者删除记录后,加上autovacuum参数未做优化或设置不当,会导致表及索引膨胀。生产环境除了手动使用vacuum之外,还有两个比较常用的工具:一个是pg_repack,另外一个是pg_squeeze

使用pg_repack或pg_squeeze对表做重组时,比vacuum full对系统的影响小,且性能更高。

安装pg_squeeze

GitHub:https://github.com/cybertec-postgresql/pg_squeeze

过程:

pg_repack使用例子

对test数据库下的foo和bar表做在线vacuum full

转移foo表的索引到tbs表空间

pg_squeeze使用例子

以注册表方式crontab定期运行“squeeze挤压”

手工对public模式下的pgbench_accounts表“squeeze挤压”

pg_squeeze测试

创建测试表

查看表的大小

向squeeze.tables插入一条数据,定期清理test表,每天的0点、2点、6点的10、30和50分别执行1次,空闲空间超过10%就会对表进行重建.

“minutes”(0到59)和“hours”(0到23)指定了一天内检查的时间,而“days_of_month”(1到31)、“months”(1到12)和“days_of_week”(0到7,其中0和7都代表星期日)确定了检查的日期。
如果“minute”、“hour”和“month”都与当前时间戳匹配,则进行检查,而NULL值分别表示任何分钟、小时和月份。

至于“days_of_month”和“days_of_week”,至少有一个需要与当前时间戳匹配,或者两者都为NULL才会进行检查。

启动pg_squeeze的进程需要调用

本人提供Oracle(OCP、OCM)、MySQL(OCP)、PostgreSQL(PGCA、PGCE、PGCM)等数据库的培训和考证业务,私聊QQ646634621或微信dbaup66,谢谢!
AiDBA后续精彩内容已被站长无情隐藏,请输入验证码解锁本文!
验证码:
获取验证码: 请先关注本站微信公众号,然后回复“验证码”,获取验证码。在微信里搜索“AiDBA”或者“dbaup6”或者微信扫描右侧二维码都可以关注本站微信公众号。

标签:

Avatar photo

小麦苗

学习或考证,均可联系麦老师,请加微信db_bao或QQ646634621

您可能还喜欢...

发表回复