mysql - 带有 Group by 的 MAX() 函数非常慢

标签 mysql sql performance

我的查询真的很慢;执行需要17秒。 Godaddy VPS 上的 CPU 利用率达到 100%。有什么想法可以做什么吗?

此查询:

         SELECT
             `gps_unit_location`.`idgps_unit`,
             MAX(`gps_unit_location`.`dt`) dtmax
         FROM `gps_unit_location`
         GROUP BY 1

解释一下

id='1', select type='SIMPLE', table='gps_unit_location', type='index', possible keys=NULL, key='fk_gps2', key len='5', ref=NULL, rows='368668', extra=''

最佳答案

(idgps_unit, dt) 上的索引可以使查询速度更快。

您可以通过更改以下内容来扩展 idgps_unit 上的索引:

KEY `fk_gps2` (`idgps_unit`),

KEY `fk_gps2` (`idgps_unit`, `dt`),

(根据 this SO questionkeyindex 的同义词。)

关于mysql - 带有 Group by 的 MAX() 函数非常慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14914541/

相关文章:

sql - 结合两个多个 bigquery SELECT FROM 语句

sql - 查询 varchar(1) 列与位标志和日期时间比较是否存在性能问题?

php - 为什么要同时使用 str_replace() 和 preg_replace()?

java - 运行内存密集型 Java 应用程序后操作系统变慢的原因是什么?

performance - OR 语句是否比多个 IF 语句更快?

MySQL 更改表中的所有列

sql - 从 TOP 数量的记录中获取 MAX 值

php - 单击 PHP、JQUERY、MYSQL 从数据库中显示更多信息

mysql - 如何将 url 附加到现有 mysql 条目

php - 在多列中查找搜索词