克里斯托夫·佩图斯:VACUUM(INDEX_CLEANUP 关闭)被认为有害
💡
原文英文,约500词,阅读约需2分钟。
📝
内容提要
PostgreSQL 12引入了VACUUM命令的INDEX_CLEANUP选项,但不建议使用。该选项会导致无法清理索引中的死元组,影响查询性能,虽然可以加快速度,但会导致表和索引膨胀。除非紧急情况,否则应避免使用。
🎯
关键要点
- PostgreSQL 12引入了VACUUM命令的INDEX_CLEANUP选项,但不建议使用。
- INDEX_CLEANUP选项会导致无法清理索引中的死元组,影响查询性能。
- 虽然使用INDEX_CLEANUP可以加快速度,但会导致表和索引膨胀。
- VACUUM的主要任务是查找死元组并回收它们作为空闲空间。
- INDEX_CLEANUP OFF会关闭从索引中移除死元组的功能,实际上会使VACUUM失去意义。
- 在某些情况下,PostgreSQL无法完全“冻结”表,可能会导致数据损坏。
- 使用INDEX_CLEANUP的原因是为了在接近数据损坏的情况下跳过索引清理。
- 即使使用INDEX_CLEANUP,仍需定期对表进行常规VACUUM。
- INDEX_CLEANUP OFF的VACUUM会被误认为是常规VACUUM,可能导致表和索引严重膨胀。
- 除非在紧急情况下,否则应避免使用INDEX_CLEANUP选项。
🏷️
标签
➡️