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  *;

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

 前缀索引

语法:

前缀长度:

 单列索引与联合索引

 单列索引情况

联合索引情况

设计原则

相关文章

显卡天梯图2024最新版,显卡是电脑进行图形处理的重要设备,...
初始化电脑时出现问题怎么办,可以使用win系统的安装介质,连...
todesk远程开机怎么设置,两台电脑要在同一局域网内,然后需...
油猴谷歌插件怎么安装,可以通过谷歌应用商店进行安装,需要...
虚拟内存这个名词想必很多人都听说过,我们在使用电脑的时候...
win11本地账户怎么改名?win11很多操作都变了样,用户如果想要...