php - MySQL - 根据用户名查询最近的输入 - 非常慢

标签 php mysql indexing

我有一个不断插入各种用户名的表。我有一个用户可以加载的页面,其中显示了他们在数据库中发布的最新条目。

我正在使用的查询示例:SELECT timestamp FROM entry_list WHERE username='user' ORDER BY entry_id DESC LIMIT 1

表中有一个 2 列索引: username, timestamp 。根据 EXPLAIN 查询使用此索引,并提供以下附加信息:

选择类型:简单
类型:引用
key_len: 34
引用:常量
行数:5654
额外:在哪里使用;使用索引;使用文件排序

如何优化我的查询?对于单个用户来说相当快(0.2~0.4 秒),但有些帐户会同时为 5、10 甚至 20 个不同的用户加载此信息。即使是 0.2~0.4 看起来也有点长,当它最终使页面加载速度减慢 4-8 秒时,这是 Not Acceptable 。

最佳答案

尝试 SELECT MAX(timestamp) FROM entry_list WHERE username = 'user'

另外,使用保留关键字作为列名可能不是最好的主意,尝试将 timestamp 更改为 insert_date 或类似的东西

关于php - MySQL - 根据用户名查询最近的输入 - 非常慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6009855/

相关文章:

sql-server - 主键升序与降序

MongoDB 超过 500 万条记录的查询性能

php - 如何从一个表中选择具有同一表中其他行的特定ID的行

php - 更改了我的 style.css 文件 - 没有任何反应

mysql错误,在 ''附近使用正确的语法

php - PDOException SQLSTATE[HY000] [2002] 没有这样的文件或目录

python - 如何在 tkinter python 中为变量指定不同的名称

php - Laravel 4 - 路线::任何除了

php - 访客结帐即使在未请求时也会创建帐户

MySQL 5.6 : Complex Query with Grouped Parameters