14.2.3 InnoDB Redo Log

<pre name="code" class="sql"><pre name="code" class="html">14.2.3 InnoDB Redo Log

14.2.3.1 Group Commit for Redo Log Flushing


redo log  是一个基于磁盘的数据结构 用于crash recovery到正确的数据(被不完全的事务写入的)


在正常操作期间,redo log 可以让查询改变InnoDB表的数据, 由SQL语句或者行级别的API 调用产生。


修改没有完成更新数据文件前一个意外的关机被自动重现 在初始化期间,在接收连接前。


默认的,redo log 是物理的表现在磁盘上的一组文件, 叫做b_logfile0 and ib_logfile1. 


MySQL 写redo log 文件以一个循环的方法。 redo log里的数据是编码成根据改变的行;


这些数据是被收集称为redo. 


redo log 的磁盘布局使用下面的选项配置:

1.innodb_log_file_size:  定义每个redo log 文件的大小 单位字节,默认redo log 文件是48MB。

log 文件的组合大小是(innodb_log_file_size * innodb_log_files_in_group) 不能超过最大值 512G
mysql> show variables like '%innodb_log%';
+-----------------------------+-----------+
| Variable_name               | Value     |
+-----------------------------+-----------+
| innodb_log_buffer_size      | 8388608   |
| innodb_log_compressed_pages | ON        |
| innodb_log_file_size        | 536870912 |
| innodb_log_files_in_group   | 2   

当前数据库redo 文件大小为512M


innodb_log_files_in_group:  log group 里的log files 的数目,默认是创建2个文件叫做ib_logfile0 and ib_logfile1.



innodb_log_group_home_dir: InnoDB log files的目录path.如果你不指定一个指,


log 文件会被创建在MySQL 数据目录(datdir)


改变你的初始redo log 配置


14.2.3.1 Group Commit for Redo Log Flushing   


InnoDB, 像任何其他遵循ACID数据库引擎, flushes 事务的redo log 在它提交前,


InnoDB 使用group 提交功能 多个flush 请求在一起 以组为单位来避免每个提交都flush.


使用group 提交,InnoDB 执行一个单独写 log file 执行提交动作 队伍多个用户事务提交在同一时间,

大大改善性能。


 
 
 

转载于:https://www.cnblogs.com/zhaoyangjian724/p/6199912.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值