优化使用IN和MAX(date)的MySQL查询

278

我有一个查询,该查询从名为“ customers”的表中返回每个CustomerID的最新日期时间。表中有许多不同的CustomerID条目,许多行具有相同的CustomerID但具有不同的datetime条目。我一直在使用下面的查询,该查询针对每个唯一的CustomerID返回一行,并显示该CustomerID的最新(MAX)日期。该表大约有6000行。

客户表:

CustLogID (Primary key, INT 11)
CustomerID (INT 11)
DateTime (DATETIME)

查询:

SELECT
CustomerID AS custid,
DateTime AS latestdatetime
FROM customers WHERE DateTime IN (
SELECT MAX( DateTime )
FROM customers GROUP BY CustomerID
)
ORDER BY CustomerID

我遇到的麻烦是,在具有本地MySQL DB的开发机上,它在一秒钟内返回结果(大约1500行),但是在我的Web主机上,它却永远无法完成任务,相同的PHP脚本,相同的数据库数据库位于Web主机服务器上的数据。Web主机上的所有其他脚本运行良好,其中一些脚本也非常复杂。

如果有人知道为什么这个查询会导致这样的瓶颈或可以重构它,我将不胜感激。

谢谢。

黑纳德

使用IN毫无意义,可以使用JOIN以下方法简单地解决此问题:

SELECT
    CustomerID custid,
    MAX(DateTime) latestdatetime
FROM customers
GROUP BY CustomerID
ORDER BY CustomerID

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

MySQL MAX查询优化

来自分类Dev

使用相关子查询优化MySQL查询

来自分类Dev

使用MAX的mysql查询

来自分类Dev

使用“ NOT IN”优化MySQL查询

来自分类Dev

使用几乎相同的子查询优化MySQL查询

来自分类Dev

就优化而言,在mysql中DATETIME索引列上的SELECT查询中使用DATE是否正确?

来自分类Dev

优化子查询的使用以获得MIN和MAX

来自分类Dev

使用并集和条件优化SQl查询

来自分类Dev

MYSQL-索引和优化选择查询

来自分类Dev

优化MySQL查询,该查询使用子查询;MariaDB更快

来自分类Dev

优化使用$ min和$ max的mongoDB聚合

来自分类Dev

使用Count和2个表的MYSQL查询优化问题

来自分类Dev

如何使用主查询中的LEFT JOIN和子查询中的INNER JOIN优化MySQL SELECT查询?

来自分类Dev

MySQL优化使用WHERE子句的子查询?

来自分类Dev

就优化而言,在mysql中DATETIME索引列上的SELECT查询中使用DATE是否正确?

来自分类Dev

如何为大型数据集(数百万行)使用联接和子查询优化MySQL查询

来自分类Dev

使用EXPLAIN输出优化慢速MySQL查询

来自分类Dev

如何使用where子句中的max优化Oracle中的查询

来自分类Dev

MySQL:SUM / MAX / MIN GROUP BY查询优化

来自分类Dev

MySQL中复杂的联接和MAX()查询

来自分类Dev

使用左联接优化MySql查询

来自分类Dev

使用索引优化MySQL查询性能

来自分类Dev

MySql GROUP BY 使用文件排序 - 查询优化

来自分类Dev

优化 MIN & MAX 查询

来自分类Dev

使用 UNION 和 DISTINCT 优化 MySQL 选择查询

来自分类Dev

使用 subselect 优化 MySQL 查询

来自分类Dev

MySQL 在触发器中使用 min 和 limit 优化查询

来自分类Dev

是否优化 select max(date) sql 查询?

来自分类Dev

MySQL 使用 max(date) 和 sum 获取 val

Related 相关文章

热门标签

归档