checkpoint技术

缓冲池的设计目的是为了协调CPU速度与磁盘速度的鸿沟。因此页的操作首先都是在缓冲池中完成的。如果一条DML语句,如update或delete改变了页中记录,那么此时页是脏的,即缓冲池的页的版本比磁盘的新。数据库需要将新版本的页从缓冲池刷新到硬盘。

为了避免数据丢失的问题,当前事务数据库系统普遍都采用Write Ahead log策略,即当事务提交时,先写重做日志,在修改页。

当由于发生宕机而导致数据丢失时,通过重做日志来完成数据的恢复。这也是事务ACID的D.

 

checkpoint技术的目的:

  • 缩短数据库的恢复时间
  • 缓冲池不够用时,将脏页刷新到磁盘
  • 重做日志不可用时,刷新脏页

当数据库发生宕机时,数据库不需要重做所有的日志,因为checkpoint之前的页都已经刷新回磁盘。故数据库只需对checkpoint后的重做日志进行恢复。这样就大大缩短了恢复的时间。

此外,当缓冲池不够用时,根据LRU算法会溢出最近最少使用的页,若此页为脏页,那么需要强制执行checkpoint,将脏页也就是也的新版本刷回磁盘。

你可能感兴趣的:(mysql)