gpt4 book ai didi

mysql - MySQL 中的简单查询需要很长时间

转载 作者:行者123 更新时间:2023-11-29 03:41:56 26 4
gpt4 key购买 nike

我一定是在监督什么,但我有以下问题:

SELECT
`Poster`, Round(Sum(If((`Date`>=DATE_ADD(CURDATE(),INTERVAL -1 Month) And `Date`<CURDATE()),1,0))/DATEDIFF(CURDATE(),DATE_ADD(CURDATE(),INTERVAL -1 Month)),0) AS `statistics`
FROM `forenposts`
GROUP BY `Poster`
ORDER BY `statistics` DESC
LIMIT 5

在一个拥有超过 150 万个条目的数据库中,这大约需要 15 秒。

有没有简单的方法来优化它,还是 If 函数只需要这么长时间?

最佳答案

你能试试这个查询吗?我从查询中删除了一些常量计算,因为对每一行的操作往往非常缓慢。另外,我会在查询中使用常量,而不是 CURDATE() 函数,因此数据库服务器可以对其进行优化。我无法尝试,请告诉我它是否有效,我可以提供更多详细信息。

SET @CURDATE = CURDATE(); 
SET @DATEADD = DATE_ADD(@CURDATE,INTERVAL -1 Month);
SET @DATEDIFF = DATEDIFF(@CURDATE,@DATEADD);

SELECT
`Poster`,
Round(Sum(If((`Date`>=@DATEADD And `Date`< @CURDATE), 1, 0)) / @DATEDIFF,0) AS `statistics`
FROM `forenposts`
GROUP BY `Poster`
ORDER BY `statistics` DESC
LIMIT 5

关于mysql - MySQL 中的简单查询需要很长时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12769015/

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