光一样的少年|「数据库系列」Postgres性能调优——Index( 三 )


SELECT * FROM pg_class , pg_index WHERE pg_index.indisvalid = false AND pg_index.indexrelid = pg_class.oid;重建索引REINDEX使用存储在索引表中的数据重建索引 , 从而替换索引的旧副本 。 如果我们怀疑表上的索引损坏 , 则可以使用REINDEX INDEX或来重建该索引或表上的所有索引 。 REINDEX TABLE
REINDEX与删除索引和重新创建索引相似 , 因为索引内容是从头开始重建的 。 但是 , 锁定注意事项却大不相同 。 REINDEX锁定对索引的父表的写入但不对其进行读取 。 它还对正在处理的特定索引采取排他锁 , 这将阻止尝试使用该索引的读取 。
另一个选择是同时删除索引并再次创建 。
结论这篇文章旨在概述Postgres如何查询数据库 。 通过更好地理解查询计划并仔细采取措施(主要是通过索引) , 我们可以从Postgres数据库中获得最佳性能 。
还有其他提高查询性能的方法 , 但我们会将其保存在以后的文章中 。


推荐阅读