MySQL日志
错误日志 log_error
记录启动,运行,停止mysql时出现的信息
二进制日志 log_bin
记录所有更改数据的语句,还用于复制,恢复数据库用
查询日志 log
记录建立的客户端连接和执行的语句
慢查询日志 log_slow_queries
记录所有执行超过long_query_time秒的所有查询
事务日志 *
InnoDB特有的日志
更新日志 log_update
二进制日志已经代替了老的更新日志,更新日志在MySQL 5.1中不再使用
事务日志
每一个操作在真正读写数据库之前,先在日志文件中执行,比如删除一行数据会先在日志文件中将此行标记为删除,但是数据库中的数据并没有发生变化,只有当事务提交,才会将日志文件同步到磁盘上的数据库文件.
事务日志可以提高事务的效率,使用事务日志,存储引擎在修改表的数据的时候只需要修改其内存拷贝,再把该行为记录到持久在磁盘的事务日志中,而不用每次都将修改的数据本身持久到磁盘。事务日志采用的是追加方式,因此写日志的操作是磁盘上一小块区域的顺序IO,而不像随机IO需要磁盘在多个地方移动,所以采用事务日志的方式相对来说要快的多。事务日志持久后,内存中的修改在后台慢慢的刷回磁盘,期间如果系统发生崩溃,存储引擎在重启的时候依靠事务日志自动恢复这部分数据。
重点需要了解MySQL事务日志是如何工作的,详细分析MySQL事务日志(redo log和undo log) , 这篇文章解释的挺详细的