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

标签 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 毫秒,我怀疑有更有效的方法来实现相同的结果。

最佳答案

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

关于mysql - 每小时必须执行数十万次的缓慢 mysql 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8754675/

相关文章:

database - Postgres : Advantages of combining columns

php - 无法显示数据结果codeigniter

php - MySQL 上每个用户的单个 SQLite 数据库?

mysql - 如何像写入常规文件一样写入 MYSQL DB

mysql - Laravel API 的 mysql 查询未在 performance_schema.events_statements_summary_by_digest 中被跟踪

Mysql SELECT查询及性能

php - MySQL 在 'keys,puzzle,posX,posY,map)' 附近从 PHP 插入语法错误

mysql - 设置 MySQL 触发器

php - 如何从表中查询列表并包含子表中的总匹配项

sql - T-SQL,计划作业中的多个更新