2

我的 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");

该表有一个索引 onuser_name和 on datetime_sent

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

4

1 回答 1

2
select * from tableName
where userName = 'username'
order by datetime_sent desc
limit 1
于 2012-01-06T07:25:38.173 回答