数据库优化——MySQL日志

摘要

本文为数据库优化系列文章的第四篇文章 :《数据库优化——优化MySQL Server》

更多文章参见

数据库优化 : http://blog.csdn.net/leyounger/article/details/70157087

MySQL日志

MySQL中有四种不同的日志,分别是错误日志,BINLOG日志,查询日志和慢查询日志

1. 错误日志

错误日志记录了系统mysqld从启动到关闭的所有严重错误的日志

当系统出错的时候,第一时间应当来看错误日志

可以用–log-error[=file_name]选项来指定保存错误日志的位置,默认来说,mysqld使用host_name.err(host_name为主机名),并默认在参数DATADIR指定的目录中写入日志文件

2. BINLOG

二进制日志记录了所有的DDL语句和DML语句,但是不包括数据查询语句。

BINLOG对数据灾难时恢复起着极其重要的作用!!

1. 日志的位置

当用–log-bin[=file_name]启动时,mysqld将包含所有更新数据的SQL命令写入日志文件,如果没有指定file_name,则在主机名后面跟-bin,默认写在DATADIR指定的目录

2. 日志的读取
shell> mysqlbinlog log-file
3. 日志的删除

对于比较繁忙的OLTP系统,需要每天定期删除log文件,下面介绍几种删除日志的常见方法

//(1) 执行"RESET MASTER;"
该命令将删除所有binlog,新日志编号从“000001”开始,

//(2) 执行"PURGE MASTER LOGS TO 'mysql-bin.******'命令
该命令将删除******之前的所有日志

//(3) 执行"PURGE MASTER LOGS BEFORE 'YYYY-MM-DD hh24:mi:ss'"
该命令删除日期前的所有日志

//(4) 设置参数--expire_logs_days=#
表示日志的过期天数

3. 查询日志

查询日志记录了客户端的所有语句,而BINLOG日志不包含查询语句

1. 日志的位置

当用–log[=file_name]启动时,mysqld将包含所有更新数据的SQL命令写入日志文件,如果没有指定file_name,默认文件名为host_name.log,默认写在DATADIR指定的目录

2. 日志的读取
more localhost.log

4. 慢查询日志

慢查询日志记录了包含所有执行时间超过参数long_query_time(单位:秒)所 设置值的SQL语句的日志。获得表锁定的时间不算作执行时间。

1. 日志的位置和格式

同错误日志、查询日志一样,慢查询日志记录的格式也是纯文本,可以被直接读取。
当用–log-slow-queries[=file_name]启动时,mysqld将包含所有更新数据的SQL命令写入日志文件,如果没有指定file_name,默认文件名为host_name-slow.log,默认写在DATADIR指定的目录

//(1) 首先查询以下long_query_time的值
SHOW VARIABLES LIKE 'long%';

//(2) 为了方便测试,将慢查询时间修改为2秒
SET long_query_time=2;

//(3) 第一个查询因为查询时间低于2秒而不会出现在日志中
SELECT COUNT(1) FROM emp;

//(4) 第二个查询因为查询时间大于2秒则应该出现在日志中
SELECT COUNT(1) FROM emp t1, dept t2 WHERE t1.id=t2.id;

//(5) 查看慢查询日志
more localhost-slow.log

可以使用mysqldumpslow来对慢查询日志进行分类汇总!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值