这篇文章主要为大家详细介绍了MySQL的7种日志的实现方法,具有一定的参考价值,可以用来参考一下。
感兴趣的小伙伴,下面一起跟随四海网的小玲来看看吧!
MySQL中有以下日志文件,分别是:
其中重做日志和回滚日志与事务操作息息相关,二进制日志也与事务操作有一定的关系,这三种日志,对理解MySQL中的事务操作有着重要的意义。
然后会通过以下三种方式将innodb日志缓冲区的日志刷新到磁盘
Master Thread 每秒一次执行刷新Innodb_log_buffer到重做日志文件。
每个事务提交时会将重做日志刷新到重做日志文件。
当重做日志缓存可用空间 少于一半时,重做日志缓存被刷新到重做日志文件
由此可以看出,重做日志通过不止一种方式写入到磁盘,尤其是对于第一种方式,Innodb_log_buffer到重做日志文件是Master Thread线程的定时任务。
因此重做日志的写盘,并不一定是随着事务的提交才写入重做日志文件的,而是随着事务的开始,逐步开始的。
另外引用《MySQL技术内幕 Innodb 存储引擎》(page37)上的原话:
即使某个事务还没有提交,Innodb存储引擎仍然每秒会将重做日志缓存刷新到重做日志文件。
这一点是必须要知道的,因为这可以很好地解释再大的事务的提交(commit)的时间也是很短暂的。
错误日志记录着mysqld启动和停止,以及服务器在运行过程中发生的错误的相关信息。在默认情况下,系统记录错误日志的功能是关闭的,错误信息被输出到标准错误输出。
指定日志路径两种方法:
1)编辑my.cnf 写入 log-error=[path]
2)通过命令参数错误日志 mysqld_safe –user=mysql –log-error=[path] &
显示错误日志的命令(如下图所示)
记录了服务器接收到的每一个查询或是命令,无论这些查询或是命令是否正确甚至是否包含语法错误,general log 都会将其记录下来 ,记录的格式为 {Time ,Id ,Command,Argument }。也正因为mysql服务器需要不断地记录日志,开启General log会产生不小的系统开销。 因此,Mysql默认是把General log关闭的。
查看日志的存放方式:show variables like ‘log_output';
如果设置mysql> set global log_output='table' 的话,则日志结果会记录到名为gengera_log的表中,这表的默认引擎都是CSV
如果设置表数据到文件set global log_output=file;
设置general log的日志文件路径:
set global general_log_file='/tmp/general.log';
开启general log: set global general_log=on;
关闭general log: set global general_log=off;
然后在用:show global variables like ‘general_log'
慢日志记录执行时间过长和没有使用索引的查询语句,报错select、update、delete以及insert语句,慢日志只会记录执行成功的语句。
1. 查看慢查询时间:
代码如下:
show variables like “long_query_time”;默认10s
MySQL中的7种日志小结
2. 查看慢查询配置情况:
代码如下:
show status like “%slow_queries%”;
MySQL中的7种日志小结
3. 查看慢查询日志路径:
代码如下:
show variables like “%slow%”;
MySQL中的7种日志小结
4. 开启慢日志
查看已经开启:
到此这篇关于mysql中的7种日志小结的文章就介绍到这了,更多相关mysql 日志内容请搜索四海网以前的文章或继续浏览下面的相关文章希望大家以后多多支持四海网!
本文来自:http://www.q1010.com/177/19352-0.html
注:关于MySQL的7种日志的实现方法的内容就先介绍到这里,更多相关文章的可以留意四海网的其他信息。
关键词:
四海网收集整理一些常用的php代码,JS代码,数据库mysql等技术文章。