今天我遇到了一个案例,表格中存在记录在查询结果中缺失的情况。我将问题追溯到可能是损坏的索引。我做完REINDEX
之后问题就解决了。
通常情况下,当我运行报告时,我会获得超过10000条记录。我不可能知道是否有丢失的记录。今天我很幸运能找到问题。
有没有办法在索引损坏时收到通知?
如果没有,我如何编写一个在我的Schema中REINDEX
所有权限的函数?
答案 0 :(得分:0)
索引损坏是非常糟糕的问题。我认为你需要从根本上诊断和解决这个问题,而不是试图在你的查询中帮助它。这可能是由kill -9
进程等任何Postgres
等行政行为不当造成的。
您的问题:没有验证工具AFAIK。我相信一个扫描整个索引的查询,例如index on index会在indeces中找到损坏的页面。
我建议你阅读this blog。