sql:SQL优化知识点记录(五)

(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

 

猜你喜欢

转载自blog.csdn.net/dengfengling999/article/details/132548518
今日推荐