当前位置: 首页 > news >正文

WAL Write AheadLog

WAL即 Write Ahead Log,WAL的主要意思是说在将元数据的变更操作写入磁盘之前,先预先写入到一个log文件中

磁盘读取分为顺序读取和随机读取
内存读取也有顺序读取和随机读取
下图是磁盘,内存 顺序和随机读取的效率表
在这里插入图片描述

一般来说内存读取速度要比磁盘读取速度快一个数量级

上图可以看出如果是顺序读取磁盘其速度堪比内存随机读取

WAL原理
通过cache合并多条写操作为一条,减少IO次数
日志顺序追加性能远高于数据随机写.
随机内存处理性能远高于数据随机处理.

性能:顺序的日志磁盘处理+随机的数据内存处理>随机的数据磁盘处理

使用 WAL 的数据库系统不会再每执行一条 WAL 操作就将数据刷入数据库文件中,一般积累一定的量然后批量写入,通常使用页为单位,这是磁盘的写入单位。 同步页缓存和数据库文件的行为被称为 checkpoint(检查点),一般在 page cache积累到一定页数修改的时候;当然,有些系统也可以手动执行 checkpoint。执行 checkpoint 之后,page cache可以被清空,这样可以保证page cache不会因为太大而性能下降。Checkpoint目的是减少数据库的恢复时间(服务奔溃或重启服务后的恢复)

当系统内存不足时,Lazy writer会自动触发,Lazy writer的目的是保证SQL OS 有空闲缓存块和系统有一定可用内存。

基本上所有的数据库都会有 WAL 类似的设计,例如 MySQL 的 Innodb redo log 等等

在这里插入图片描述

在这里插入图片描述

相关文章:

  • 网站建设 策划/阿里seo排名优化软件
  • 一起做网店的类似网站/做推广的都是怎么推
  • 广告设计网上接单/太原seo优化
  • 吕子乔做网站一段台词/赣州seo唐三
  • 网页制作公司增值税税率/优化大师tv版
  • 怎样编写网站/国内网站排名
  • 过气明星组合大衣哥、李嘉明、唐磊,谁录制祝福视频能价值100万
  • 明清专题数据库:企业匹配官办书局距离、科举考试、商帮文化变量等
  • 【零基础】学python数据结构与算法笔记12
  • 使用混沌和非线性控制参数来提高哈里斯鹰优化算法的优化性能,解决车联网相关的路由问题(Matlab代码实现)
  • 【阶段四】Python深度学习06篇:深度学习项目实战:卷积神经网络进行狗狗图像分类项目
  • STM32时钟系统原理和作用
  • ithewei的2022年度总结
  • 带你走入虚函数和多态的世界(c++)
  • spring容器注入---@Import
  • day20-网络编程
  • PCL点云处理之NDT正态分布变换配准实验(附完整代码,参数设置,效果展示)(九十二)
  • Open3D 点云法向量重定向(基于连续切平面,Python版本)