在Postgresql中检测并修复损坏的indeces?

时间:2015-11-19 08:27:19

标签: sql postgresql

今天我遇到了一个案例,表格中存在记录在查询结果中缺失的情况。我将问题追溯到可能是损坏的索引。我做完REINDEX之后问题就解决了。

通常情况下,当我运行报告时,我会获得超过10000条记录。我不可能知道是否有丢失的记录。今天我很幸运能找到问题。

有没有办法在索引损坏时收到通知?

如果没有,我如何编写一个在我的Schema中REINDEX所有权限的函数?

1 个答案:

答案 0 :(得分:0)

索引损坏是非常糟糕的问题。我认为你需要从根本上诊断和解决这个问题,而不是试图在你的查询中帮助它。这可能是由kill -9进程等任何Postgres等行政行为不当造成的。

您的问题:没有验证工具AFAIK。我相信一个扫描整个索引的查询,例如index on index会在indeces中找到损坏的页面。

我建议你阅读this blog