(1)explain之例子
(2)索引单表优化案例
上面的功能已经实现,但是分析功能, 使用explain分析这条sql:
发现type为All Extra:有Using filesort (文件内排序) 这两个是影响性能的
查看下这张表:只有一个主键索引
为这几个字段建立一个符合索引:
建立完索引后,在使用explain进行分析一下:type变成了range,但是Extra还是留着Using filesort
因为comments>1,是一个范围,范围之后会导致索引失效,有范围导致后面的索引用不上
还需要优化
删除上面建立的索引:drop
重新建立索引:跳过comments字段
查看索引
此时再使用explain查看:
(3)索引两表案例优化案例
分析一下sql:type为all rows为20+20
有连个表:先给一张表book表建立索引
此时在分析sql:下面book的type变为ref 性能得到了增强
把索引加到class表:删除索引
加索引:
在次分析sql:class的type为index 效果ref>index 没有ref好,可以看出左连接给右表建立索引性能高
左连接,给右表建立索引。右连接,给左表建立索引
(3)索引三表优化案例
新建一个表
删除前面的建立索引:
三表查询:
分析一下sql:type全是all,需要建立索引优化
跟据左右连接,分别建立索引(左建右,右建左)
建立后分析一下sql:两分type变为all