MySQL日志

来源:互联网 发布:win7怎么打开2404端口 编辑:程序博客网 时间:2024/06/05 04:48

MySQL学习笔记


一,日志

在MySQL中,有4种不同的日志,分别是错误日志、二进制日志(BINLOG日志)、查询日志和慢查询日志,这些日志记录着数据库在不同方面的踪迹。


二,错误日志

错误日志是MySQL中最重要的日志之一,它记录了当mysqld启动和停止时,以及服务器在运行过程中发生任何严重错误时的相关信息。当数据库出现任何故障导致无法正常使用时,可以首先查卡此日志。


三,二进制日志

二进制日志(BINLOG)记录了所有的DDL(数据定义语言)语句和DML(数据操纵语句)语句,但是不包括数据查询语句。语句以事件的形式保存,它描述了数据的更改过程。此日志对于灾难时的数据恢复起着极其重要的作用。

MySQL的主从复制就是通过传输二进制日志实现。


四,查询日志

查询日志记录了客户端的所有语句,而二进制日志不包含只查询数据的语句。


五,慢查询语句

慢查询日志记录了所有执行时间超过参数long_query_time(单位:秒)设置值并且扫描记录数不小于min_examined_row_limit的所有SQL语句的日志(注意,获得表锁定的时间不算作执行时间)。long_query_time默认为10秒,最小为0,精度可以到微妙。

在默认情况下,有两类常见语句不会记录到慢查询日志:管理语句和不使用索引进行查询的语句。这里的管理语句包括ALTER TABLE、ANALYZE TABLE、CHECK TABLE、CREATE TABLE、DROP INDEX、OPTIMIZE TABLE和REPAIR TABLE。如果要监控这两类SQL语句,可以分别通过参数–log-slow-admin-statements和log_queries_not_using_indexes进行控制。


六,mysqlsla简介

在很多情况下,都需要对MySQL日志进行各种分析,来了解系统运行的方方面面。比如我们可能需要对查询日志进行分析,看一下哪些语句执行最频繁,从而了解客户最关心的功能,哪些重要的功能为什么点击率低,需要我们进一步完善,在比如DBA很关心性能问题,需要从慢查询日志中进行分析,找到最消耗时间的SQL进行优化,等等。

MySQL自带了一些工具可以对日志进行分析,比如mysqlbinlog可以用来分析二进制日志,mysqlslow可以用来分析慢查询日志,但这些工具相对功能较单一,而且对查询日志没有提供分析工具。因此,很多第三方工具出现了,而mysqlsla是其中使用较广泛的一个。

mysqlsla是MySQL Statement Log Analyzer的缩写,它可以分析查询日志、慢查询日志(包括微妙日志)、二进制日志和具有固定格式的自定义日志。


七,总结

日子是数据库中很重要的记录内容,它可以帮助我们诊断数据库出现的各种问题。

系统故障时,建议首先查看错误日志,以帮助用户迅速定位故障原因。

如果要记录数据的变更、数据的备份、数据的复制等操作时,二进制日志必须打开,以帮助用户进行数据恢复等操作。默认不记录此日志,建议通过-log-bin选项将此日志打开。

如果希望记录数据库发生的任何操作,包括select,则需要用-log将查询日志打开,此日志默认关闭,一般情况下建议不要打开此日志,以免影响系统整体性能。

如果希望查看系统的性能问题,希望找到有性能问题的SQL语句,则需要用–slow_query_log打开慢查询日志。对于大量的慢查询日志,建议使用mysqldumpslow工具来进行汇总查看。


八,参考资料

《深入浅出MySQL 数据库开发、优化与管理维护》

原创粉丝点击