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
介绍:例如我们需要从查询日志种,查看哪些语句执行最频繁,查看最消耗时间的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 |
使用: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
第一部分:
1)queries total: 总查询次数
2)unique:去重后的sql数量
3)sorted by : 输出报表的内容排序 最重大的慢sql统计信息, 包括 平均执行时间, 等待锁时间, 结果行的总数, 扫描的行总数.
(t_sum:按总时间排序;c_sum:按总次数排序;c_sum_p: 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语句