微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

MySQL——————进阶教学二

目录

SQL性能分析

SQL执行频率

MySQL慢查询日志(linux)

 profile详情

查看耗时情况

explain执行计划

explain执行计划各字段含义:

索引使用

 最左前缀法则

范围查询

索引失效情况

索引列运算

字符串不加引号

模糊查询

or连接的条件

数据分布影响

SQL提示

覆盖索引

 前缀索引

 单列索引与联合索引

单列索引情况

联合索引情况

设计原则


sql性能分析

sql执行频率

MysqL查询日志(linux)

 注释:MysqL重启:systemctl restart MysqLd

 profile详情

注释:查看profiling是否开启,可以使用select  @@profiling;

查看耗时情况

explain执行计划

explain执行计划各字段含义:

id

select查询的序列号,表示查询中执行select子句或者是操作表的顺序(id相同,执行顺序从上到下;id不同,值越大,越先执行)。

相同时:

不同时:

select_type

表示select的类型,常见的取值有SIMPLE(简单表,即不使用表连接或者子查询).   PRIMARY(主查询,即外层的查询).   UNION(UNION中的第二个或者后面的查询语句),   SUBQUERY(SELECT/WHERE之后包含了子查询)等。

type

表示连接类型,性能由好到差的连接类型为NULL,system,const(主键或唯一索引),eq_ref,ref(非唯一索引),range,index,all。

possible_key

显示可能应用在这个这张表上的索引,一个或多个。

索引使用

 最左前缀法则

范围查询

索引失效情况

索引列运算

注意:不要再索引列上进行运算操作,索引将失效。

字符串不加引号

模糊查询

如果仅仅是尾部模糊匹配,索引捕获失效。如果是头部模糊匹配,索引失效。

or连接的条件

用or分割开的条件,如果or前的条件中的列有索引,而后面的列中没有索引,那么涉及的索引都不会被用到。

数据分布影响

如果MysqL评估使用索引比全表更慢,则不使用索引。

 数据大于整张表一半,一般情况MysqL会走全表扫描,反之走索引。

sql提示

sql提示,是优化数据库一个重要手段,简单来说,就是在sql语句中加入一些人为的提示来达到优化操作的目的。

 use index(推荐使用的索引)     ignore index(不推荐使用的索引)   force index(强迫使用指定索引)

覆盖索引

尽量使用覆盖索引(查询使用了索引,并且需要返回的列,在该索引中已经全部能够找到),减少select  *;

观察最后一列,上面的性能高于下面

 前缀索引

语法:

前缀长度:

 单列索引与联合索引

 单列索引情况

联合索引情况

设计原则

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐