postgresql – Postgres不使用带有“ORDER BY”的索引

postgresql – Postgres不使用带有“ORDER BY”的索引,第1张

概述>我有一张很大的桌子. >我在列col1上有一个索引. >我想获得col1订购的数据. >从查询计划我可以说它不使用索引. >当我添加“LIMIT”时,它开始使用索引 >对于“LIMIT”的大值,它将停止使用索引. 任何线索? 附:我想通过col1的值(不一定排序),除了“ORDER BY”之外的任何建议来获取数据. 谢谢 !! 如果从表中返回所有行,则索引扫描将比表扫描慢. 为什么你认为你需要使 >我有一张很大的桌子.
>我在列col1上有一个索引.
>我想获得col1订购的数据.
>从查询计划我可以说它不使用索引.
>当我添加“liMIT”时,它开始使用索引
>对于“liMIT”的大值,它将停止使用索引.

任何线索?

附:我想通过col1的值(不一定排序),除了“ORDER BY”之外的任何建议来获取数据.

谢谢 !!

如果从表中返回所有行,则索引扫描将比表扫描慢.
为什么你认为你需要使用索引?

你可能会尝试使用

set enable_seqscan = false

为了禁用顺序扫描,但我确信它会比顺序扫描慢.

ORDER BY是对数据进行排序的唯一方法.您可能会看到的任何其他排序都是纯粹的巧合

编辑要清理:我不建议关闭seq扫描.我刚发布这个作为一种方式来表明seq扫描确实比索引扫描更快.一旦关闭,使用索引扫描的执行计划很可能比显示OP的seq扫描更慢,因为不需要索引扫描.

总结

以上是内存溢出为你收集整理的postgresql – Postgres不使用带有“ORDER BY”的索引全部内容,希望文章能够帮你解决postgresql – Postgres不使用带有“ORDER BY”的索引所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/1181211.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-02
下一篇 2022-06-02

发表评论

登录后才能评论

评论列表(0条)

保存