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

(1)explain之例子

sql:SQL优化知识点记录(五)_第1张图片

 

 (2)索引单表优化案例

sql:SQL优化知识点记录(五)_第2张图片

 sql:SQL优化知识点记录(五)_第3张图片

sql:SQL优化知识点记录(五)_第4张图片

 

sql:SQL优化知识点记录(五)_第5张图片

上面的功能已经实现,但是分析功能, 使用explain分析这条sql:

发现type为All Extra:有Using filesort (文件内排序) 这两个是影响性能的

 

 查看下这张表:只有一个主键索引

sql:SQL优化知识点记录(五)_第6张图片

 为这几个字段建立一个符合索引:

sql:SQL优化知识点记录(五)_第7张图片 

建立完索引后,在使用explain进行分析一下:type变成了range,但是Extra还是留着Using filesort

因为comments>1,是一个范围,范围之后会导致索引失效,有范围导致后面的索引用不上

还需要优化

 sql:SQL优化知识点记录(五)_第8张图片

 删除上面建立的索引:drop

 

 sql:SQL优化知识点记录(五)_第9张图片

sql:SQL优化知识点记录(五)_第10张图片 

重新建立索引:跳过comments字段

 

 查看索引

 

 此时再使用explain查看:

 

 

(3)索引两表案例优化案例

sql:SQL优化知识点记录(五)_第11张图片 

sql:SQL优化知识点记录(五)_第12张图片 

 

 sql:SQL优化知识点记录(五)_第13张图片

sql:SQL优化知识点记录(五)_第14张图片 

sql:SQL优化知识点记录(五)_第15张图片 

 sql:SQL优化知识点记录(五)_第16张图片

sql:SQL优化知识点记录(五)_第17张图片 

 

 

分析一下sql:type为all    rows为20+20sql:SQL优化知识点记录(五)_第18张图片 

 有连个表:先给一张表book表建立索引

sql:SQL优化知识点记录(五)_第19张图片

此时在分析sql:下面book的type变为ref 性能得到了增强

sql:SQL优化知识点记录(五)_第20张图片 

 把索引加到class表:删除索引

sql:SQL优化知识点记录(五)_第21张图片

加索引: 

 sql:SQL优化知识点记录(五)_第22张图片

在次分析sql:class的type为index    效果ref>index  没有ref好,可以看出左连接给右表建立索引性能高

 sql:SQL优化知识点记录(五)_第23张图片

 

左连接,给右表建立索引。右连接,给左表建立索引

(3)索引三表优化案例

新建一个表 

sql:SQL优化知识点记录(五)_第24张图片

 sql:SQL优化知识点记录(五)_第25张图片

删除前面的建立索引:sql:SQL优化知识点记录(五)_第26张图片

 三表查询:

 sql:SQL优化知识点记录(五)_第27张图片

 sql:SQL优化知识点记录(五)_第28张图片

sql:SQL优化知识点记录(五)_第29张图片 分析一下sql:type全是all,需要建立索引优化

sql:SQL优化知识点记录(五)_第30张图片 

 跟据左右连接,分别建立索引(左建右,右建左)sql:SQL优化知识点记录(五)_第31张图片

 建立后分析一下sql:两分type变为all

sql:SQL优化知识点记录(五)_第32张图片

 

sql:SQL优化知识点记录(五)_第33张图片

 sql:SQL优化知识点记录(五)_第34张图片

 

你可能感兴趣的:(数据库知识点总结,sql,数据库)