©
本文档使用 PHP中文网手册 发布
MySQL服务日志
MySQL服务日志分类
慢查询日志
查看慢查询日志的定义
启动和设置慢查询日志
二进制日志
错误日志(error):记录MySQL服务进程mysqld在启动/关闭或者运行过程中遇到的错误信息;
查询日志(query log),分为以下两类:
普通日志(general query log):记录客户端连接信息和执行的SQL语句信息(
生产环境中一般不开启
);
慢查询日志(slow query log):记录执行时间超出指定值(long_query_time)的SQL语句;
二进制日志(binary log):记录数据被修改的相关信息
慢查询日志是用来记录执行时间超过指定时间的查询语句。
通过慢查询日志,可以查找出哪些查询语句的执行效率很低,以便进行优化。
一般建议开启,它对服务器性能的影响微乎其微,但是可以记录mysql服务器上执行了很长时间的查询语句,可以帮助我们定位性能问题的。
mysql> SHOW GLOBAL VARIABLES LIKE 'slow_query%'; | slow_query_log | OFF # 定义慢查询日志的 | slow_query_log_file |/mydata/data/stu18-slow.log # 输出方式为file(文件)时定义慢查询日志的位置
通过配置文件my.cnf中的log-slow-queries
选项可以开启慢查询日志;
>[danger]
[mysqld]
slow_query_log=1
long_query_time=10 # 设置默认超过时间记录慢查询日志
log-slow-queries [= DIR/[filename] ]
log_queries_not_using_indexes=on # 未使用索引的查询语句是否记录
通过命令行直接定义或者修改满查询日志时间
mysql> SHOW GLOBAL VARIABLES LIKE 'long%'; +-----------------+----------+ | Variable_name | Value | +-----------------+----------+ | long_query_time | 1.000000 | +-----------------+----------+ mysql> set global long_query_time=10; Query OK, 0 rows affected (0.00 sec) mysql> SHOW GLOBAL VARIABLES LIKE 'long%'; +-----------------+-----------+ | Variable_name | Value | +-----------------+-----------+ | long_query_time | 10.000000 | +-----------------+-----------+ 1 row in set (0.00 sec)
二进制日志中常用的定义格式:
1、语句(statement):默认的记录格式;
2、行(row):定义的并非数据本身而是这一行的数据是什么;
3、混合模式(mixed):交替使用行和语句、由mysql服务器自行判断。
其中基于行的定义格式数据量会大一些但是可以保证数据的精确性。
更多详情参考:MySQL服务日志(待梳理)