事物日志
背景
数据库的读写操作都是在buffer pool进行的,但是数据最终是要持久化到磁盘的,我们都知道内存的性能是HDD的100倍,是SSD的30倍,性能差距还是很大的,在数据库高并发读写的场景下当时使用高性能的内存最合适。但又不是每执行一次写操作都需要刷新磁盘,这样性能很低,因为写磁盘是随机写IO,性能低。解决方案就是使用事物日志,在更新完内存数据之后,就会写一条事务日志,事务日志的写入是顺序IO,效率高。另外在数据安全方面,假如内存中的最新数据还没有刷新到磁盘中,数据库宕机了,那数据是不是就丢失了?答案是不会的,因为服务器重启之后会从开始丢失的地方通过事务日志进行恢复的。下面用图概括总结。
顺序IO与随机IO
带来哪些好处?
- 提高事务效率
- 数据恢复