MariaDB慢查询日志
为什么要配置慢查询日志?
目的是为了帮助我们分析MariaDB的瓶颈点。
如何配置?
进入MariaDB,执行以下语句:
# mysql -uroot -pmysql
> show variables like 'slow%';
+---------------------+-------------------+
| Variable_name | Value |
+---------------------+-------------------+
| slow_launch_time | 2 |
| slow_query_log | OFF |
| slow_query_log_file | wangzb01-slow.log |
+---------------------+-------------------+
如果需要开启slow日志,name需要修改slow_query_log 为on
> show variables like 'datadir';
+---------------+--------------+
| Variable_name | Value |
+---------------+--------------+
| datadir | /data/mysql/ |
+---------------+--------------+
> show variables like 'long%'; //配置超时时间
+-----------------+-----------+
| Variable_name | Value |
+-----------------+-----------+
| long_query_time | 10.000000 |
+-----------------+-----------+
打开配置文件/etc/my.cnf。编辑增加
slow_query_log = on
slow_query_log_file = /data/mysql/wangzb-slow.log
long_query_time = 2
# systemctl restart mysqld //重启mysqld服务
模拟慢查询
# mysql -uroot -pmysql
> select sleep(5); //执行语句
+----------+
| sleep(5) |
+----------+
| 0 |
+----------+
查看慢查询日志:
# cat /data/mysql/wangzb-slow.log //查看查看慢查询日志内容如下
/usr/local/mysql/bin/mysqld, Version: 10.3.11-MariaDB-log (MariaDB Server). started with:
Tcp port: 0 Unix socket: /tmp/mysql.sock
Time Id Command Argument
/usr/local/mysql/bin/mysqld, Version: 10.3.11-MariaDB-log (MariaDB Server). started with:
Tcp port: 0 Unix socket: /tmp/mysql.sock
Time Id Command Argument
Time: 190220 20:42:14
User[@Host](https://my.oschina.net/u/116016): root[root] @ localhost []
Thread_id: 10 Schema: QC_hit: No
扩展:
# mysql -uroot -pmysql
> show processlist; //查看所有的队列,类似系统查看所有进程
+----+-------------+-----------+------+---------+------+--------------------------+------------------+----------+
| Id | User | Host | db | Command | Time | State | Info | Progress |
+----+-------------+-----------+------+---------+------+--------------------------+------------------+----------+
| 2 | system user | | NULL | Daemon | NULL | InnoDB purge worker | NULL | 0.000 |
| 1 | system user | | NULL | Daemon | NULL | InnoDB purge coordinator | NULL | 0.000 |
| 3 | system user | | NULL | Daemon | NULL | InnoDB purge worker | NULL | 0.000 |
| 4 | system user | | NULL | Daemon | NULL | InnoDB purge worker | NULL | 0.000 |
| 5 | system user | | NULL | Daemon | NULL | InnoDB shutdown handler | NULL | 0.000 |
| 11 | root | localhost | NULL | Query | 0 | Init | show processlist | 0.000 |
+----+-------------+-----------+------+---------+------+--------------------------+------------------+----------+
> show full processlist; //查看所有队列时把所有内容展示出来,完整的语句展示出来。
+----+-------------+-----------+------+---------+------+--------------------------+-----------------------+----------+
| Id | User | Host | db | Command | Time | State | Info | Progress |
+----+-------------+-----------+------+---------+------+--------------------------+-----------------------+----------+
| 2 | system user | | NULL | Daemon | NULL | InnoDB purge worker | NULL | 0.000 |
| 1 | system user | | NULL | Daemon | NULL | InnoDB purge coordinator | NULL | 0.000 |
| 3 | system user | | NULL | Daemon | NULL | InnoDB purge worker | NULL | 0.000 |
| 4 | system user | | NULL | Daemon | NULL | InnoDB purge worker | NULL | 0.000 |
| 5 | system user | | NULL | Daemon | NULL | InnoDB shutdown handler | NULL | 0.000 |
| 11 | root | localhost | NULL | Query | 0 | Init | show full processlist | 0.000 |
+----+-------------+-----------+------+---------+------+--------------------------+-----------------------+----------+