北京网站建设电扬科技,网页qq登录不扫二维码,扬州高邮网站建设,中国建设银行网站密码是什么意思摘要#xff1a; 前言 数据库日志记录了用户对数据库的各种操作及数据库发生的各种事件。能帮助数据库管理员追踪、分析问题。MySQL提供了错误日志、二进制日志、查询日志、慢查询日志。 MySQL的慢查询日志是MySQL提供的一种日志记录#xff0c;它用来记录在MySQL中响应时间超…摘要 前言 数据库日志记录了用户对数据库的各种操作及数据库发生的各种事件。能帮助数据库管理员追踪、分析问题。MySQL提供了错误日志、二进制日志、查询日志、慢查询日志。 MySQL的慢查询日志是MySQL提供的一种日志记录它用来记录在MySQL中响应时间超过阀值long_query_time单位秒的SQL语句。
前言数据库日志记录了用户对数据库的各种操作及数据库发生的各种事件。能帮助数据库管理员追踪、分析问题。MySQL提供了错误日志、二进制日志、查询日志、慢查询日志。MySQL的慢查询日志是MySQL提供的一种日志记录它用来记录在MySQL中响应时间超过阀值long_query_time单位秒的SQL语句。默认情况下MySQL不启动慢查询日志。本文简单介绍如何开启慢查询日志如何用mysqldumpslow分析慢查询。开启慢查询日志修改my.cnf在配置文件my.cnf一般为/etc/my.cnf中的[mysqld] section增加如下参数。[mysqld]
slow_query_log 1
slow_query_log_file /var/lib/mysql/slow-query.log # 若没有指定默认名字为hostname_slow.log
long_query_time 1log_queries_not_using_indexes 1其中slow_query_log 1表示开启慢查询0表示关闭slow_query_log_file指定慢查询日志路径需要MySQL对该路径有写权限long_query_time 1表示查询时间1秒才记录日志默认10slog_queries_not_using_indexes 1表明记录没有使用索引的 SQL 语句重启MySQL服务# 重启
$ sudo service mysqld restart# 重启后进程如下root 22373 0.0 0.0 66064 1424 pts/3 S 16:59 0:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --datadir/var/lib/mysql --socket/var/lib/mysql/mysql.sock --log-error/var/log/mysqld.log --pid-file/var/run/mysqld/mysqld.pid --usermysql
mysql 22721 0.3 0.5 890996 467040 pts/3 Sl 16:59 0:00 /usr/local/mysql/bin/mysqld --basedir/usr/local/mysql --datadir/var/lib/mysql --plugin-dir/usr/local/mysql/lib/plugin --usermysql --log-error/var/log/mysqld.log --pid-file/var/run/mysqld/mysqld.pid --socket/var/lib/mysql/mysql.sock重启MySQL后会看到/var/lib/mysql/slow-query.log文件。检查参数通过如下命令可以检查上述参数配置情况。mysql show variables like slow_query%;
----------------------------------------------------
| Variable_name | Value |
----------------------------------------------------
| slow_query_log | ON |
| slow_query_log_file | /var/lib/mysql/slow-query.log |
----------------------------------------------------
2 rows in set (0.00 sec)mysql show variables like long_query_time;
---------------------------
| Variable_name | Value |
---------------------------
| long_query_time | 1.000000 |
---------------------------
1 row in set (0.00 sec)测试慢查询制造慢查询并执行。如下。mysql select sleep(1);
----------
| sleep(1) |
----------
| 0 |
----------
1 row in set (1.00 sec)慢查询日志打开慢查询日志文件。可以看到上述慢查询的SQL语句被记录到日志中。# Time: 180620 17:13:06
# UserHost: apsara[apsara] dc1487859883577.et2sqa [11.239.51.96] Id: 3
# Query_time: 1.000246 Lock_time: 0.000000 Rows_sent: 1 Rows_examined: 0
SET timestamp1529485986;
select sleep(1);慢查询分析工具mysqldumpslowmysqldumpslow是MySQL自带的分析慢查询的工具。该工具是Perl脚本。常用参数如下。-s排序方式值如下c查询次数t查询时间l锁定时间r返回记录ac平均查询次数al平均锁定时间ar平均返回记录书at平均查询时间
-ttop N查询
-g正则表达式例子我们执行了多次类似如下的查询。select * from db_user where name like zb%;
select * from db_user where name like aaa%;
select * from db_user where name like bc%;
...获取访问次数最多的5个SQL语句$ mysqldumpslow -s c -t 5 /var/lib/mysql/slow-query.logReading mysql slow query log from /var/lib/mysql/slow-query.log
Count: 15 Time0.00s (0s) Lock0.00s (0s) Rows0.0 (0), apsara[apsara]dc1487859883577.et2sqa# Query_time: N.N Lock_time: N.N Rows_sent: N Rows_examined: NSET timestampN;select * from db_user where name like SCount: 1 Time0.00s (0s) Lock0.00s (0s) Rows0.0 (0), apsara[apsara]dc1487859883577.et2sqa# Query_time: N.N Lock_time: N.N Rows_sent: N Rows_examined: Nuse test;SET timestampN;select * from db_user where name like S按照时间排的top 5个SQL语句$ mysqldumpslow -s t -t 5 /var/lib/mysql/slow-query.log按照时间排序且含有like的top 5个SQL语句$ mysqldumpslow -s t -t 3 -g like /var/lib/mysql/slow-query.log小结默认情况下MySQL不启动慢查询日志。若要检查慢查询需要我们手动设置这个参数。一般情况下若非调优需要不建议启动该参数因为开启慢查询日志或多或少会带来一定的性能影响。慢查询日志支持将日志记录写入文件也支持将日志记录写入数据库表。原文链接本文为云栖社区原创内容未经允许不得转载。