mysql--慢查询日志、mysqlsla和优化sql

https://jingyan.baidu.com/article/020278115affbc1bcc9ce5dd.html

1、进入MySQL服务器,执行  或者直接在mysql客户端navicat执行以下sql

show VARIABLES like '%slow%'

2、在linux种编辑my.cnf命令

/etc/my.cnf

在【mysqld】下增加

slow_query_log=1开启慢查询日志,

long_query_time=1(单位:秒),查询超过多长时间记录,

log_queries_not_using_indexes=1,记录没有索引的查询。

3、填写完成以后保存并重启mysql服务器,执行命令/etc/init.d/mysql restart重启Mysql服务器

mysql--慢查询日志、mysqlsla和优化sql

mysql--慢查询日志、mysqlsla和优化sql

————————————————————————————————————————————————————

安装、使用mysql

介绍:例如我们需要从查询日志种,查看哪些语句执行最频繁,查看最消耗时间的sql。

安装:

注意:我也看了其他博文,但是解压时都报以下错误:tar: Error is not recoverable: exiting now

yum install perl-DBI perl-DBD-MySQL perl-devel -y

yum -y  install perl-Time-HiRes

cd /data/software

wget  ftp://ftp.tw.freebsd.org/pub/distfiles/mysqlsla-2.03.tar.gz

tar -xvf mysqlsla-2.03.tar.gz

cd mysqlsla-2.03

perl Makefile.PL

make

make install  

mysqlsla -lt slow /data/logs/mysql/mysql-slow.log
转自https://blog.****.net/halikes23/article/details/82853263

使用:mysqlsla /usr/local/src/mysql/mysql5.6/data/mysql/izm5eaifbnupnab0clutvrz-slow.log

日志会有2部分:

https://blog.****.net/benpaobagzb/article/details/48057629?locationNum=9&fps=1

mysqlsla    -top 30   /usr/local/src/mysql/mysql5.6/data/mysql/izm5eaifbnupnab0clutvrz-slow.log

第一部分:

mysql--慢查询日志、mysqlsla和优化sql

1)queries total: 总查询次数  
2)unique:去重后的sql数量  
3)sorted by : 输出报表的内容排序 最重大的慢sql统计信息, 包括 平均执行时间, 等待锁时间, 结果行的总数, 扫描的行总数.  
(t_sum:按总时间排序;c_sum:按总次数排序;c_sum_p: sql语句执行次数占总执行次数的百分比)

第二部分:

mysql--慢查询日志、mysqlsla和优化sql

4)Count: sql的执行次数及占总的slow log数量的百分比.  
5)Time: 执行时间, 包括总时间, 平均时间, 最小, 最大时间, 时间占到总慢sql时间的百分比.  
6)95% of Time: 去除最快和最慢的sql, 覆盖率占95%的sql的执行时间.  
7)Lock Time: 等待锁的时间.  
8)95% of Lock: 95%的慢sql等待锁时间.  
9)Rows sent: 结果行统计数量, 包括平均, 最小, 最大数量.  
10)Rows examined: 扫描的行数量.  
11)Database: 属于哪个数据库. 
12)Users: 哪个用户,IP, 占到所有用户执行的sql百分比. 
13)Query abstract: 抽象后的sql语句. 
14)Query sample: sql语句