数据库索引优化案例

2020-04-10  本文已影响0人  抬头挺胸才算活着
  1. order by不要用filesort,建立索引,将order放在最右边,就是排序好的。



    查询语句及其explain
    两个点,一个是type=all,一个是Extra=using filesort。



    尝试对where所有字段建立索引,然后explain,type好了一点,但是Extra=using filesort还在

    思路:中间的>使得索引断了,order by不能利用索引的最后一个字段是排序的,我们只建立where前后的索引。可以看到下面,file sort没了。
  2. 左右连接建立索引要建在被驱动表连接的列上,而且要小表驱动大表,调高join buffer



    查询



    给被驱动表book连接的列加上了索引后,被驱动表的type变为ref,row减小了。

    给驱动表class连接的列加上索引后,驱动表的type变为index(也就是遍历索引),但是row不变。

    左连接和右连接建立索引要加在被驱动表上,因为连接的原理就是对于驱动表的每一列,然后过滤被驱动表,被驱动表是要多次读取的。

上一篇下一篇

猜你喜欢

热点阅读