【发布时间】:2014-01-23 12:51:15
【问题描述】:
众所周知,mysql数据库中有一个叫做“强制索引”的命令。因此,无论优化器是否喜欢,这都会强制 mysql 使用索引。我的困惑是如何在 postgresql 上做同样的事情? 任何回复将不胜感激。
【问题讨论】:
-
你确实意识到,如果你还不知道如何去做,那么你知道何时去做的可能性很小——没有……对吗?
众所周知,mysql数据库中有一个叫做“强制索引”的命令。因此,无论优化器是否喜欢,这都会强制 mysql 使用索引。我的困惑是如何在 postgresql 上做同样的事情? 任何回复将不胜感激。
【问题讨论】:
Postgres 中没有索引提示,核心开发人员也没有兴趣添加任何索引提示。首选方法是在查询计划器做一些愚蠢的事情时对其进行修复。
如果它更喜欢在您的查询中进行 seq 扫描,则可能意味着:
通常情况下,上面的第一个适用,并且进行 seq 扫描确实更便宜。这样想:想象你是邮递员。是按照邮寄的顺序递送信件,在这个过程中来回穿梭在城镇中,还是在a)你总共有几封信要递送而b)你已经每条街道送几封信?使用索引与 seq 扫描的理由大致相同。
【讨论】: