fagz

7.25 SQL性能分析

SQL执行频率
MySQL客服端连接成功后,通过SHOW [GLOBAL|SESSION]//查看全局/查看当前对话 ststus命令可以提供服务器状态信息。通过如下指令,可以查看当前数据库的INSERT,UPDATE,DELETE,SELECT的访问频次:
例:SHOW GLOBAL ststus like 'Com____';

慢查询日志
慢查询日志记录了所有执行时间超过指定参数(long_query_time,单位:秒,默认时间)的所有SQL语句的日志。
查看慢查询日志是否开启:
show variables like 'slow_query_log';
MySQL的慢查询日志默认没有开启,需要在MySQL的配置文件(/etc/my.cnf)中配置如下信息:

开启慢日志查询开关

slow_query_log=1

设置慢日志的时间为2秒,SQL语句执行时间超过2秒,就会视为慢查询,记录慢查询日志

long_query_time=2

配置完慢查询日志后,需要进行保存然后对mysql进行重启(systemct1 restart mysqld)

日志文件存放地:cd/var/lib/mysql
对慢日志实时查看追加:tail -f localhost-slow.log

profile详情
show profiles能够在做SQL优化时帮助我们了解时间都耗费到哪里去了。通过have_profiling参数,能够看到当前MySQL是否支持profile操作:
SELECT @@have_profiling;
默认profiling是关闭的,可以通过set语句在session/global级别开启profiling:
SET profiling=1;
判断当前开关是否打开:select @@profiling;

posted on 2025-07-25 18:24  fagz  阅读(2)  评论(0)    收藏  举报

导航