mysql order by 出现Using filesort的解决办法

http://blog.csdn.net/yangyu112654374/article/details/4251624

比如一条sql语句

select * from TABLE1 where A1=1 and A2=2 and A3=3 order by A4 ASC; 

优化后是这样: select A4,A1,A2 ... FROM TABLE1 where A1=1 and A2=2 and A3=3 order by A4 ASC; 并且给 A4,A1,A2,A3加索引,使用order by A4时,联合索引要将A4放在首位。

SELECT的时候必须出现order by的字段才行

2. 从上面可以看到联合索引,也可以叫多列索引,形如 key (‘A1‘,‘A2‘,‘A3‘ ,‘A4‘)等的,排序的思路一般是,先按照A1来排序,A1相同,然后按照A2排序,以此类推,这样对于(A1),(A1,A2),(A1,A2,A3)的索引都是有效的,但是对于(A2,A3)这样的索引就无效了。

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。