gpt4 book ai didi

mysql - 当切换到 ORDER BY ASC 而不是 DESC 时,它需要很长时间。是什么赋予了?

转载 作者:行者123 更新时间:2023-11-29 06:20:00 25 4
gpt4 key购买 nike

我只是将查询ORDER BY DESC 切换到ASC。没有其他变化。

我的查询:

SELECT * FROM `conversion_queue`
WHERE
`processed_date` = '0000-00-00 00:00:00'
AND `created` <= DATE_SUB(NOW(), INTERVAL 2 MINUTE)
AND `processed_status` = 'QUEUED'
ORDER BY `created` ASC
LIMIT 1;

我在表上有以下索引:

Non_unique      Key_name            Seq_in_index    Column_name         Collation
0 PRIMARY 1 id A
1 client_id 1 client_id A
1 merchant_unique_id 1 merchant_unique_id A
1 created 1 created A

什么给了?我应该添加其他索引吗?这个特定的表有超过一百万行。

最佳答案

这里的问题是

`created` <= DATE_SUB(NOW(), INTERVAL 2 MINUTE)

如果你按created降序排列,MySQL可以去索引找到第一个满足约束的值,也许返回几条记录直到满足其他约束,然后就停在那里因为LIMIT 1。但是,如果顺序颠倒,则它必须从头开始扫描索引,直到找到满足所有约束的第一条记录,这可能需要一段时间。 (processed_date,processed_status,created) 上的键在这种情况下可能会有很大帮助,但您应该始终使用 EXPLAIN 验证所有查询以确保键是正确的按预期使用。

关于mysql - 当切换到 ORDER BY ASC 而不是 DESC 时,它需要很长时间。是什么赋予了?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33793761/

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