mysql常用的四种日志
-
二进制日志:以二进制文件的形式记录了数据库中的操作,但不记录查询语句(可以还原数据库)
-
错误日志:记录Mysql服务器的启动、关闭和运行错误等信息
-
通用日志:记录用户登录和记录查询的信息
-
慢查询日志:记录执行时间超过指定时间的操作
- 二进制日志
启动和设置二进制日志
log-bin=mysql-bin # 开启
expire_logs_days=3 # 保存几天
my.ini文件中添加
- 错误日志
错误日志功能是默认开启的,而且无法被禁止
log-error=/var/log/mysqld.log
- 通用查询日志
通用查询日志是用来记录用户的所有操作,包括启动和关闭,更新语句和查询语句
启动和设置通用查询日志
log=/var/log/all.log
- 慢查询日志
慢查询日志是用来记录执行时间超过指定时间的查询语句。通过慢查询日志,可以查找出那些查询语句的执行效率很低,以便进行优化
slow_query_log = 1 # 是否开启慢查询日志
slow_query_log_file = /var/log/mysql/slow.log # 以FILE类型存储慢查询日志时的存储位置
long_query_time = 2 # 查询阈值,超过了该阈值则记录到慢查询日志中 秒/s
// 更多
log_output:如何存储慢查询日志,可选项:FILE或者TABLE 默认存储在mysql.slow_log表中
log_queries_not_using_indexes:取值on或者off,慢查询日志是否包含不使用索引进行查找的查询,通俗点说就是没使用到索引的查询SQL均会记录到慢查询日志中
log-short-format:开启此参数后,服务器会将较少(更加紧凑)的日志信息写入慢查询日志,节约磁盘空间
log_slow_admin_statements:启用该参数后后会将 ALTER TABLE, ANALYZE TABLE, CHECK TABLE, CREATE INDEX,DROP INDEX, OPTIMIZE TABLE,和 REPAIR TABLE语句也记录至慢查询日志
log_throttle_queries_not_using_indexes :当log_queries_not_using_indexs参数后,没使用索引的查询SQL蹭蹭的写入man查询日志,导致慢查询日志快速增长,这个参数开启后即可对这些SQL设定速率限制
log_slow_slave_statements :主从复制时候不会将复制查询写入慢查询日志
查看日志内容
Query_time: 语句执行时间(以秒为单位)
Lock_time:在几秒钟内获得锁定的时间
Rows_sent:发送到客户端的行数
Rows_examined:优化程序检查的行数