我开始了一份新工作,他们使用 MySQL 作为主要数据库。
我更习惯 MSSQL,并且想知道以下语句是否可以优化,因为它需要 10 分钟!
预先感谢您提供的任何帮助。
SELECT
CAST(DATE_FORMAT(created_at, '%Y-%m-%d %k:%i:00')
AS DATETIME) AS 'Date',
COUNT(*) AS Count
FROM
db
WHERE
created_at BETWEEN NOW() - INTERVAL 5 HOUR AND NOW()
AND status = 'Accepted'
GROUP BY CAST(DATE_FORMAT(created_at, '%Y-%m-%d %k:%i:00')
AS DATETIME)
最佳答案
不知道为什么在选择或分组中进行转换,但将最后一行替换为:
GROUP BY DATE_FORMAT(created_at, '%Y-%m-%d %k:%i')
如果这没有多大帮助,请在该命令之前添加“EXPLAIN”,然后检查输出。如果您无法使用解释前缀弄清楚它,请将其发布在这里,以便有人可以为您提供有关索引的建议。
关于mysql - 优化 MySQL 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51878364/