【发布时间】:2016-09-16 14:43:57
【问题描述】:
我有一个包含 550.000 条记录的表
SELECT * FROM logs WHERE user = 'user1' ORDER BY date DESC LIMIT 0, 25
此查询需要 0.0171 秒。没有LIMIT,有3537个结果
SELECT * FROM logs WHERE user = 'user2' ORDER BY date DESC LIMIT 0, 25
此查询需要 3.0868 秒。没有LIMIT,有13个结果
表键是:
PRIMARY KEY (`id`),
KEY `date` (`date`)
当使用“LIMIT 0,25”时,如果记录少于 25 条,查询会变慢。我该如何解决这个问题?
【问题讨论】:
-
你索引你的表了吗?
LIMIT也应该是 25 我看不出 0 的作用。 -
这可能与this Question 类似,本质上表明这是从查询优化器中选择错误的索引。尝试使用
explain进行检查,然后您可以在查询中使用index hints 修复它。 -
@MikeTung
LIMIT 0,25是 OFFSET LIMIT 对的缩写。它只是意味着25 records, starting at record 0 -
@makadev
IGNORE INDEX (date)工作,谢谢
标签: mysql