mysql高级(查询截取分析)

Posted 木心

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql高级(查询截取分析)相关的知识,希望对你有一定的参考价值。

目录:

 

1、索引失效

  1)全值匹配我最爱:查询条件于符合索引顺序

  2)最佳左前缀法则:如果索引了多列,要遵守最左前缀法则,即查询where子句从索引的最左前列开始并且不跳过索引中的列(带头大哥要有,中间兄弟不能断)

  3)不在索引列上做任何操作(计算、函数、自动或手动类型转换),因为这样会导致索引失效而转向全表扫描

  4)存储引擎不能使用索引中范围条件右边的列

  比如:创建符合索引 idx_staffs_name_age_pos(name, age, pos), 如果查询条件是 where name=‘xxx‘ and age > 10 and pos=‘xxx‘, 则因为 age > 10 是范围查询,导致idx_staffs_name_age_pos后面的索引列用不上索引(age这个索引列还是能用上的)。

  5)尽量使用覆盖索引(只访问索引查询,索引列和查询列一致),少用 select *

  6)mysql在使用不等于(!=, <>)时无法使用索引导致全表扫描

  7)is null, is not null 也无法使用索引

  8)like 以 ‘%xxx‘ 通配符开头,导致索引失效,(如果like ‘xxx%‘,查询ref=range)

  问题:解决like ‘%xxx%‘时索引不被使用?  解决:使用覆盖索引

  9)字符串不加单引号索引失效

  10)少用or,用它来连接时会索引失效

 

2、SQL性能优化四步

  1)慢查询的开启并捕获

  2)explain+慢SQL分析

  3)show profile 查询 SQL 在 mysql 服务器里面的执行细节和生命周期情况

  4)SQL 数据库服务器的参数调优

 

3、查询优化--小表驱动大表

 

4、查询优化--order by关键字优化

 

5、查询优化--group by关键字优化

 

 

 

 

 

 

 

 

---

   

以上是关于mysql高级(查询截取分析)的主要内容,如果未能解决你的问题,请参考以下文章

MySQL高级 之 查询日志分析

大数据技术之_29_MySQL 高級面试重点串讲_02_Mysql 简介+Linux 版的安装+逻辑架构介绍+性能优化+性能分析+查询截取分析+分区分库分表简介+锁机制+主从复制

《MySQL高级篇》七性能分析工具的使用(慢查询日志 | EXPLAIN | SHOW PROFILING | 视图分析 )

MySQL高级篇——EXPLAIN分析查询语句

MySQL高级篇——EXPLAIN分析查询语句

MySQL高级查询和编程基础