我有一个不断插入各种用户名的表。我有一个用户可以加载的页面,其中显示了他们在数据库中发布的最新条目。
我正在使用的查询示例: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/