局部性原理:
1.内存读写快,磁盘读写慢,而且慢很多
2.磁盘预读:磁盘读写并不是按需读取,而是按页读取。通常一页数据4k。一次会读取一页数据,每次加载更多数据,如果未来要读取的数据就在这一页中,可以避免未来磁盘的IO,提高效率。
3.局部性原理:软件设计要尽量遵循"数据读取集中"与"使用到一个数据,大概率会使用到附近数据",这样磁盘预读能充分提高磁盘IO
redo重放在重做日志文件中,undo存放在数据库内部特殊段中,称为undo段,undo段位于表共享空间内
mysql的innodb_flush_log_at_trx_commit参数
0:log buffer将每秒一次地写入log file中,并且log file的flush(刷到磁盘)操作同时进行。该模式下在事务提交的时候,不会主动触发写入磁盘的操作。
1:每次事务提交时MySQL都会把log buffer的数据写入log file,并且flush(刷到磁盘)中去,该模式为系统默认。
2:每次事务提交时MySQL都会把log buffer的数据写入log file,但是flush(刷到磁盘)操作并不会同时进行。该模式下,MySQL会每秒执行一次 flush(刷到磁盘)操作。