gpt4 book ai didi

sql - 提高排序性能的索引?

转载 作者:行者123 更新时间:2023-11-29 11:32:57 24 4
gpt4 key购买 nike

我有一个相当复杂的查询,其中包括一个 ORDER BY 和一个 LIMIT 子句。当 ORDER BY 使用主键时,查询时间不到 5 毫秒。但是,如果我更改查询,使 ORDER BY 由不同的列(FLOAT 类型)完成,则响应时间会激增到 50 秒以上(四个订单数量级更高!)。

现在,我假设问题是按主键排序的查询执行索引扫描,而按浮点列排序的查询执行顺序扫描并需要在最后排序。

我认为只需在 float 列上添加索引就足以让 Postgresql 以更智能的方式计划此查询。显然我错了。我可能错过了什么?

编辑: 在发布问题之前,我确实运行了 EXPLAIN ANALYZE。因此,我的推定不仅仅是一个疯狂的猜测;但是,由于 EXPLAIN ANALYZE 的输出运行了 30 多行,因此无法立即清楚为什么一个查询使用索引而另一个查询必须对所有行进行排序。

最佳答案

  1. 对查询运行解释分析 - 这样您就不必猜测会发生什么。
  2. 要优化查询,您通常必须阅读解释分析输出、查询,然后找出最佳行动方案。有时 - 它正在添加索引,有时 - 重写查询。但无法判断哪个最适合您的情况,因为我们没有看到解释或查询。

关于sql - 提高排序性能的索引?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14734752/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com