+ -
当前位置:首页 → 问答吧 → order by 中使用索引的问题

order by 中使用索引的问题

时间:2011-12-16

来源:互联网

msg表有以下列
id 自增长 key
timing int型unixtimestamp
uid 用户id

索引建了2个
Alter table msg ADD INDEX idx1(uid,timing);
Alter table msg ADD INDEX idx2(timing);

当我执行
explain select * from msg where uid =111 order by timing desc 的时候,
期望使用到idx1中的uid,timing 但是结果是只用到了uid 难道order by 不用索引吗?

(为了测试 表中插入了10万行 timing的值也尽量随机分布了)

作者: nindeping4   发布时间: 2011-12-16

explain的结果肯定是使用了索引,而且是idx1,而不是idx2。
结果确实只用到了uid,然后根据timing来进行排序,这个是没问题的。
LZ可以把explain的结果贴出来。

作者: DenielJean   发布时间: 2011-12-16

引用 1 楼 denieljean 的回复:

explain的结果肯定是使用了索引,而且是idx1,而不是idx2。
结果确实只用到了uid,然后根据timing来进行排序,这个是没问题的。
LZ可以把explain的结果贴出来。

为什么会没有用到timing呢 explain的结果就是用idx1 但只有uid的四个字节

作者: nindeping4   发布时间: 2011-12-16