mysql - 优化 MySQL 脚本

标签 mysql query-optimization

我开始了一份新工作,他们使用 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/

相关文章:

mysql - 具有可交换值的 2 列 : in() vs and

MySQL:LIKE 查询中的默认排序?

MySQL 更新 IF (ROW_COUNT() = 0)

MySQL 工作台语法

mysql - 节省查询 sql 的时间

mysql - 存储数据库记录的数量是多余的吗?

mysql - 在带有前缀的mySQL中添加一个自动增量字段

php - 从 MySQL 时间戳获取上次查看的项目

mysql - 基于列计算非连续行集的优化方法

sql-server - SQL Server 存储过程 - 'IF statement' 与 'Where criteria'