mysql_SQL性能分析

1、sql执行频率

MySQL客户端连接成功后,通过show [ sessionlglobal ] status  命令可以提供服务器状态信息。通过如下指令,可以查询当前数据库的 insert 、UPDATE 、DELETE 、SELECT 的访问频次。

        SHOW GLOBAL STATUS LIKE 'com_______';   (7个下划线)

 

 

2、慢查询日志

慢查询日志记录了所有执行时间超过指定参数(long_query_time,单位:秒,默认10秒)的所有SQL语句的日志。

MySQL的慢查询日志默认没有开启,需要MySQL的配置文件(/etc/my.cnf)中配置。

查询是否开启: show variables like 'slow_query_log';

配置中加入如下:(配置完后重启sql)

# 开启MySQL慢日志查询开关
show_query_log=1
# 设置慢日志的时间为2秒,sql语句执行时间超过2秒,就会视为慢查询,记录慢查询日志。
long_query_time=2

 

 

3、profile详情

show profile 能够在做sql优化时帮助我们了解事件都耗费在哪里了。通过have_profiling 参数,能够看到当前mysql是否支持profile操作。

       show @@have_profiling;

默认profiling是关闭的,可以通过set语句在session/global级别开启profiling.

       set profiling = 1;

执行一系列的业务sql的操作,然后通过如下指令查看的执行耗时;

    查看每一条sql的耗时基本情况: show profiles;

    查看指定query_id 的sql语句各个阶段的耗时情况: show profile for query_id;

    查看指定query_id 的sql语句CPU的使用情况: show profile cpu for query query_id;

 

4、explain执行计划

explain 或者desc ,命令获取mysql如何执行select语句的信息,包括在select语句执行过程中表如何连接和连接的顺序。

直接在select语句之前加上关键字explain / desc。

 

posted @ 2022-07-10 16:58  小王同学学编程  阅读(385)  评论(0编辑  收藏  举报
levels of contents