gpt4 book ai didi

将限制设置为 13214 时 MySQL 变慢

转载 作者:行者123 更新时间:2023-11-30 22:17:51 25 4
gpt4 key购买 nike

谁能解释这两个查询之间的巨大执行时间?

查询 #1:

SELECT SQL_NO_CACHE MAX(id) as id 
FROM optin
WHERE siteNum = 3895
GROUP BY uid LIMIT 0,13213

执行时间:0.092秒

解释查询 #1 说 - type=index, possible keys=siteNum, key = uid, rows =23700

查询#2:

SELECT SQL_NO_CACHE MAX(id) as id 
FROM optin
WHERE siteNum = 3895
GROUP BY uid LIMIT 0,13214

执行时间:13.757秒

解释查询 #2 说 - type=ref, possible keys=siteNum, key = siteNum, rows =637723

唯一的区别是 LIMIT。任何高于 1323 的都非常慢。

这是什么意思?索引时有问题吗?

Proof/Screenshot

最佳答案

来自文档:

http://dev.mysql.com/doc/refman/5.7/en/limit-optimization.html

If you select only a few rows with LIMIT, MySQL uses indexes in some cases when normally it would prefer to do a full table scan.

所以 LIMIT 改变了它使用索引的方式。包括表上的索引可能会更好地解释这一点,但看起来较小的 LIMIT 使用索引中的 uid 而较大的 LIMIT 是使用 ref 关闭 siteNum

有关 Explain 的文档: http://dev.mysql.com/doc/refman/5.7/en/explain-output.html

关于将限制设置为 13214 时 MySQL 变慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37602279/

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