我的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_name
和 datetime_sent
上有一个索引。
我怎样才能最好地改进这个查询?我必须一次运行数千个这样的查询。每个查询似乎需要 1 到 4 毫秒,我怀疑有更有效的方法来实现相同的结果。
最佳答案
select * from tableName
where userName = 'username'
order by datetime_sent desc
limit 1
关于mysql - 每小时必须执行数十万次的缓慢 mysql 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8754675/