-
order by不要用filesort,建立索引,将order放在最右边,就是排序好的。
表
查询语句及其explain
两个点,一个是type=all,一个是Extra=using filesort。
尝试对where所有字段建立索引,然后explain,type好了一点,但是Extra=using filesort还在
思路:中间的>使得索引断了,order by不能利用索引的最后一个字段是排序的,我们只建立where前后的索引。可以看到下面,file sort没了。
-
左右连接建立索引要建在被驱动表连接的列上,而且要小表驱动大表,调高join buffer
表
查询
给被驱动表book连接的列加上了索引后,被驱动表的type变为ref,row减小了。
给驱动表class连接的列加上索引后,驱动表的type变为index(也就是遍历索引),但是row不变。
左连接和右连接建立索引要加在被驱动表上,因为连接的原理就是对于驱动表的每一列,然后过滤被驱动表,被驱动表是要多次读取的。
网友评论