MySQL中InnoDB的双写缓存存在的意义是什么?

MySQL中InnoDB的双写缓存存在的意义是什么?

阅读 4.2k
1 个回答

用于避免刷新脏页的时候只写入一半造成数据混乱。

InnoDB 的数据页大小往往和系统的数据页大小不一致,有可能 InnoDB 为 16k,系统的为 4k,InnoDB 刷新一个数据页,系统要刷新 4 个,这就意味着在系统宕机的时候有可能只刷新了一半的数据页。

双写缓冲技术,会先把要刷新的数据写入共享表空间,然后再刷新到对应系统页,如果在这个过程中系统崩溃,InnoDB 就可以从共享表空间获取到要刷新的数据,然后重新执行。

当然,如果操作系统可以保证数据一致性,不会只刷一半,那就可以关闭双写缓冲

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题