gpt4 book ai didi

mysql - mysql 中的限制超时

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

简而言之,此查询返回 890738 个条目

SELECT * 
FROM `cms_question_report`
WHERE `doa` < '2014-12-16 11:48:13'

大约 2 秒内即可完成

尝试将其切成 4 block 后,此查询超时并产生错误

SELECT * 
FROM `cms_question_report`
WHERE `doa` < '2014-12-16 11:48:13'
LIMIT 222684

错误如下:

Error in Processing Request
Error code: 500
Error text: Internal Server Error

根据我的基本理解,第二个不应该运行得更快,因为它对获取的数据有较低的限制?

另一个测试:

SELECT * 
FROM `cms_question_report`
WHERE `doa` < '2014-12-16 11:48:13'
LIMIT 2

一切顺利

最佳答案

不,它不会运行得更快。数据库必须首先获取所有结果并对它们进行排序,然后再应用 LIMIT。我知道这似乎浪费资源,为什么不在获得 LIMIT 行后停止呢?因为它们必须排序,即使该顺序是隐式的,因为您尚未指定显式顺序。隐式顺序是查询中主表的 PK 顺序,但 WHERE 子句意味着不会自动按照该顺序找到行。因此必须找到所有行,然后排序,然后限制。

关于mysql - mysql 中的限制超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29090883/

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