数据库索引优化案例

  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不变。

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

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容