摘要:
mysql进行回滚事物的时候,是怎么样根据redo log和undo里面记录的sql进行的?undo日志用于存放数据修改被修改前的值,假设修改 tba 表中 id=2的行数据,把N...
mysql进行回滚事物的时候,是怎么样根据redo log和undo里面记录的sql进行的?
undo日志用于存放数据修改被修改前的值,假设修改 tba 表中 id=2的行数据,把Name='B' 修改为Name = 'B2' ,那么undo日志就会用来存放Name='B'的记录,如果这个修改出现异常,可以使用undo日志来实现回滚操作,保证事务的一致性。
图片来源:网络
对数据的变更操作,主要来自 INSERT UPDATE DELETE,而UNDO LOG中分为两种类型,一种是 INSERT_UNDO(INSERT操作),记录插入的唯一键值;一种是 UPDATE_UNDO(包含UPDATE及DELETE操作),记录修改的唯一键值以及old column记录。
mysql log buffer size默认多少?
MySQL log buffer size默认为16MB。该参数定义了MySQL写入二进制日志、错误日志和慢查询日志时在内存中使用的缓冲区大小。如果日志写入速度超过了缓冲区的容量,MySQL将会暂停写入并等待缓冲区中的数据被写入磁盘。因此,适当调整log buffer size大小可以提高日志写入的效率和性能。