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

时间:2021-11-05 06:44:13

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)这样的索引就无效了。