我有一张int
字段的表,我们称之为createTime
。该表由几百万条记录组成。现在我想运行查询:偏差限制(“LIMIT 500000,10”)即使在索引后也很慢?
select * from `table` order by `createTime` desc limit 500000, 10
我创建了一个指数为createTime
,但在查询运行慢得令人难以置信。什么原因?我该如何改进它?
这里是EXPLAIN说:
id 1
select_type simple
table table
type index
possible_keys null
key createTime
key_len 4
ref null
rows 500010
extra
至于补偿,它的工作速度更快时,它的小。
您是否尝试过使用EXPLAIN关键字查看MySql正在做什么?实际上,EXPLAIN从'table'命令中选择* by createTime' desc limit 500000,10.出于兴趣,什么数据类型是createTime? – dash
我在问题中解释过这是一个int。 EXPLAIN表示没有什么有趣的地方,它使用创建的索引,它估计的行数为500010. –
(索引创建之前*的性能是怎样的?什么是没有偏移的限制?偏移量更小的限制?) – 2011-12-11 20:42:29