如何设置和启用MariaDB慢查询日志

时间:2020-01-09 10:39:42  来源:igfitidea点击:

在Linux或类似Unix的系统上如何为MariaDB服务器启用慢速查询日志?
慢查询日志只不过是在服务器上花费很长时间的SQL查询日志。
您可以使用此功能来找出使动态Web应用变慢的SQL查询。
请注意,默认设置禁用慢速查询日志。
因此,让我们来看看如何在MariaDB服务器中设置和启用慢速查询日志。

如何激活慢查询日志

编辑存储在/etc/mysql /目录中的my.cnf或mariadb.cnf。
在此示例中,我正在编辑/etc/mysql/mariadb.conf.d/50-server.cnf文件:

$ sudo vi /etc/mysql/mariadb.conf.d/50-server.cnf

在[mysqld]部分中追加以下语法:

slow_query_log = 1
long_query_time = 1
slow_query_log_file = /var/log/mysql/slow-query.log
log_queries_not_using_indexes

保存并关闭文件。
其中:

  • slow_query_log = 1启用慢查询日志。
  • long_query_time = 1以秒/微秒为单位设置定义慢查询的时间。
  • slow_query_log_file =/var/log/mysql/slow-query.log慢查询日志文件的名称
  • log_queries_not_using_indexes是否记录不使用索引的查询

重新启动mariadb服务器

执行以下命令:

$ sudo /etc/init.d/mysql restart

或者

$ sudo systemctl restart mysql

或用于RHEL/CentoS

$ sudo systemctl restart mysqld

查看您的慢查询日志

执行以下命令:

$ sudo tail -f /var/log/mysql/slow-query.log

输出示例:

# Thread_id: 950  Schema: wpblog  QC_hit: No
# Query_time: 0.006252  Lock_time: 0.000032  Rows_sent: 499  Rows_examined: 816
SET timestamp=1490818968;
SELECT option_name, option_value FROM wp_options WHERE autoload = 'yes';
# User@Host: bloguser[bloguser] @ www1 [192.168.162.36]
# Thread_id: 951  Schema: wpfront  QC_hit: No
# Query_time: 0.009001  Lock_time: 0.000038  Rows_sent: 448  Rows_examined: 2184
use wpfront;
SET timestamp=1490818968;
SELECT option_name, option_value FROM wp_options WHERE autoload = 'yes';

您需要使用pt-query-digest来分析慢速,常规和二进制日志文件中的MySQL查询。

$ pt-query-digest /var/log/mysql/slow-query.log