POSTGRESQL 中如果你的表文件有损坏,则在查询中会直接告诉你某些文件缺失,你无法对这个表进行查询,或操作. 如果是索引可能就没有这么的简单了.
?...当一个索引文件有问题的情况下,会遇到什么情况
1 查询的时候明明有索引,但查询的时候大部分情况走全表扫描
2 通过pg_stat_user_tables可以看到 idx_scan 明显比 seq_scan...要验证这个问题,有一个比较笨的方法,就是通过pg_dump的方式把表导出,如果这个表被导出的情况下,则证明表的索引已经损坏了....如果觉得这样的操作对于大表不是太合理,可以通过查询 explain analyze 的方式来进行,查看查询中的数据结果是否一致....这已经能证明索引出了问题.
当然可以通过 pg_catcheck 来进行系统的数据的完整性的检查.