P粉2810894852023-08-21 18:52:40
假设您询问的是许多数据库中常见的“索引提示”功能,PostgreSQL并不提供这样的功能。这是PostgreSQL团队做出的有意决定。关于为什么以及您可以做什么的很好的概述可以在这里找到。基本原因是,这是一种性能优化的方法,在数据发生变化时往往会导致更多的问题,而PostgreSQL的优化器可以根据统计数据重新评估计划。换句话说,今天可能是一个好的查询计划,但可能不会一直是一个好的查询计划,而索引提示则会强制使用特定的查询计划。
作为一种非常粗糙的工具,用于测试,您可以使用enable_seqscan
和enable_indexscan
参数。请参阅:
这些不适用于持续的生产使用。如果您在查询计划选择方面遇到问题,您应该查看用于追踪查询性能问题的文档。不要只是设置enable_
参数然后离开。
除非您有非常充分的理由使用索引,否则Postgres可能会做出正确的选择。为什么呢?
还请参阅这篇旧的新闻组帖子。