思考并回答以下问题:
- 因为有Buffer Pool的存在,才会有redo log的作用。系统崩溃了,Buffer Pool里的东西都没了。怎么理解?
- 在事务提交时,把redo log刷新到磁盘中。怎么理解?
- 对于一个已经提交的事务,在事务提交后即使系统发生了崩溃,这个事务对数据库中所做的更改也不能丢失。在事务提交完成之前把该事务所修改的所有页面都刷新到磁盘的方法不好,怎么不好?
- 什么是随机IO和顺序IO?
- 事务持久性的特性,就是说对于一个已经提交的事务,在事务提交后即使系统发生了崩溃,这个事务对数据库中所做的更改也不能丢失。怎么理解?
- 没有必要在每次事务提交时就把该事务在内存中修改过的全部页面刷新到磁盘,只需要把修改了哪些东西记录一下就好。因为在系统崩溃重启时需要按照上述内容所记录的步骤重新更新数据页,所以上述内容也被称之为重做日志。怎么理解?
- 事务的持久性是通过redo log实现的。redo日志本质上只是记录了一下事务对数据库做了哪些修改。怎么理解?
- 在事务提交时将所有修改过的内存中的页面刷新到磁盘中相比,只将该事务执行过程中产生的redo日志刷新到磁盘的好处是redo日志占用的空间非常小,redo日志是顺序写入磁盘的。怎么理解?