慢的mysql查询,每小时必须执行数十万次

时间:2012-01-06 07:22:57

标签: mysql database-performance

我的mysql数据库有一个包含数十万行的表。 每行(包括其他数据)都有用户名和时间戳。

我需要检索具有给定用户的最新时间戳的记录。

当前的暴力查询是:

SELECT * FROM tableName WHERE `user_name`="The user name" AND datetime_sent = (SELECT MAX(`datetime_sent`) FROM tableName WHERE `user_name`="The user name");

该表的索引位于user_namedatetime_sent

如何才能最好地改进此查询?我必须一次运行数千个这样的查询。每个查询似乎需要1到4毫秒,我怀疑有更有效的方法来实现相同的结果。

1 个答案:

答案 0 :(得分:2)

select * from tableName
where userName = 'username'
order by datetime_sent desc
limit 1