关于IO配置参数相关问题

来源:2-23 IO相关配置参数

慕粉1559449418

2020-09-30

老师,你好,课程中你这样说到“为了减少提交事务时产生的IO开销,innodb提供了预写日志的这种方式,也就是事务提交时会先写到事务日志中,而不是每次都把修改的数据刷新到数据文件中,这样做是为了提高IO的 性能,因为事务的修改使数据和索引文件通常都映射到表空间的随机位置,所以刷新数据变更到数据文件都会产生随机的IO,而记录日志则使用的是顺序IO,所以刷新脏数据到文件系统来说,记录事务日志的方法要快得多,一旦事务日志写入到磁盘中,事务就持久化了,因为即使数据还没写入到数据文件,如果这时候出现服务器宕机,这样还可以通过事务日志来恢复已经提交的事务”,有几点不是很明白
1、事务的修改使数据和索引都映射到表空间的随机位置,对于innodb存储引擎来说,每个表都对应一个表名.idb的系统文件(该文件就是表空间),事务的修改指的是什么,是指对表中数据的修改吗,映射到随机位置是什么意思
2、随机IO和顺序IO是什么意思
3、事务信息写到事务日志文件后,比如更改表中的数据后并提交事务,会把事务记录到事务日志缓冲区,然后再刷到磁盘上的事务日志文件中,那么对于数据文件来说它是存储表中的数据的,那事务日志文件和数据文件如何协同完成数据的最终更新
4、存放在事务日志里的信息都是什么

写回答

2回答

慕粉1559449418

提问者

2020-10-07

谢谢老师的回答

0
0

sqlercn

2020-09-30

  1. 事务的修改指的就是修改表中的数据。虽然一个表对应了一个表空间,但是在表空间中记录在磁盘上分布的物理顺序并不是连续的也就是随机分布的。

  2. 顺序你可以理解为记录在磁盘的分布是一条线,这条线是连续的,而随机可以认为分布在一个圆盘上的是多个点。

  3. 数据文件和事务日志是分布涮新的,但要是遵循日志先罗盘的原则。只要日志落了盘事务的持久性就可以得到保证了

  4. 事务日志分redo 和undo 两种,用于记录记录修改前和修改后的状态。具体可以参考MYSQL面试指南那门课程中的内容。

0
0

MySQL提升课程 全面讲解MySQL架构设计

面面俱到讲解影响MySQL性能的各个因素,让MySQL架构了然于胸。

4420 学习 · 547 问题

查看课程