一个查询既有order by desc 又有LIMIT下的排序如何建立索引

一个查询既有order by desc 又有limit 的如何建立索引
我想请教一下如下:
一个表a没有建立索引也没主键。
select * from (select * from a where id ='12345' order by date desc limit 10) a order by date;
请问这句怎么建索引,嗯表a差不多100万行
select * from (select * from a where id ='12345' order by date desc limit 30) a order by date; ----- a差不多100万行,为innodb类型
且id 不唯一;建立复合键时,外层的select 不走索引。我想要的是外层也走索引的建议,谢谢

如果表只有逆序排序的话,可以建一个逆序索引,在DATE列上,至于ID上的主键当然应该有了,如果它确实是主键的话。外层排序很快,因为只有10条结果,不需要过多考虑。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-12-24
order by id desc是按id进行降序排列
limit 0,1 是只取记录中的第一条.
所以这条语句只能得到一条记录
如想取前10条则 limit 0,10或limit 10
如想取第10至20条则 limit 10,20
相似回答