首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > Mysql >

order by 中使用索引的有关问题

2012-04-19 
order by 中使用索引的问题msg表有以下列id自增长 keytiming int型unixtimestampuid用户id索引建了2个Alte

order by 中使用索引的问题
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的值也尽量随机分布了)

[解决办法]
key_len 4

使用索引前4个字节就可以定位所有得结果集了

order by后面得结果集又不需要过滤 ,所有只用前四个字段就够了

热点排行