gpt4 book ai didi

mysql 限制和偏移连接的性能

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

热跑。 A 有数百万条记录,B、C、D...较小(数千条)

SELECT ... FROM A LEFT OUTER JOIN B ... LIMIT 1000 OFFSET 0;

此结果在 < 0.1 秒内返回

SELECT ... FROM A LEFT OUTER JOIN B ... LIMIT 1000 OFFSET 1000000;

而这将在 > 4 秒内返回

假设排序是按 A 的 PK 进行的,并且所有连接都正确索引,我会假设这 2 个操作应该具有相似的性能,但根据偏移量,它似乎是 O(N)...

查询计划不应该是先从A中选择1000个然后再进行连接吗?我将 A 的选择与两个不同的偏移量进行了比较,时间差远小于 1 秒,因此这不能解释给定连接的时间差异巨大。

这是mysql查询计划优化器的缺陷吗?

最佳答案

由于您没有提及 ORDER BY 子句,因此可以在第一个查询中的限制中规定的 1,000 条记录之后停止查询。第二个查询速度较慢,因为必须生成 1,001,000 条记录,然后只返回最后 1,000 条记录。

希望有帮助。

关于mysql 限制和偏移连接的性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9023070/

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