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

(1)索引优化5

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

(2)索引优化6

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

(3)索引优化7

查询*, 百分号加右边,否则索引会失效sql:SQL优化知识点记录(七)_第3张图片

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

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

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

没建立索引之前都是全表扫描 

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

 没建立索引sql:SQL优化知识点记录(七)_第8张图片sql:SQL优化知识点记录(七)_第9张图片

建立索引:

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

建立索引

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

id是主键,他也可以从主键上取 

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

 覆盖索引要到了name,索引没有失效

 覆盖索引要到了age,索引没有失效 

不使用* 查找,覆盖索引没有失效

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

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

使用*查找:个数上超过索引,索引失效

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

使用多个字段,但是查询的字段比创建的索引多一个,建立的索引不能覆盖了

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

 (4)索引优化8

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

当输入整型的2000,他需要的是varcher类型,底层实现了整型到String转换,没有带双引号,MySql在底层做了一个隐式的了类型转换 

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

但是自动或者手动的做类型转换索引会失效:

通过explain分析可以看出这两条sql有没有使用到索引:

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

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

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

 

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