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 等等

WAL Write AheadLog相关推荐

  1. Rocksdb 写流程,读流程,WAL文件,MANIFEST文件,ColumnFamily,Memtable,SST文件原理详解

    文章目录 前言 Rocksdb写流程图 WAL 原理分析 概述 文件格式 查看WAL的工具 创建WAL 清理WAL MANIFEST原理分析 概述 查看MANIFEST的工具 创建 及 清除 MANI ...

  2. 预写式日志(Write-Ahead Logging (WAL))

    SQL Server中使用了WAL(Write-Ahead Logging)技术来保证事务日志的ACID特性.而且大大减少了IO操作. WAL的核心思想是:在数据写入到数据库之前,先写入到日志.再将日 ...

  3. checkpoint process vs writer process vs wal writer process

    开始 我目前的理解是: 如果我执行了一条SQL文,那么 先是相关数据写到  wal buffer里, 然后再写到 data  buffer(shared_buffer)里. 这之后, 由于wal wr ...

  4. GRDB使用SQLite的WAL模式

    GRDB使用SQLite的WAL模式 WAL全称是Write Ahead Logging,它是SQLite中实现原子事务的一种机制.该模式是从SQLite 3.7.0版本引入的.再此之前,SQLite ...

  5. (2.4)备份与还原--WAL与备份原理

    预写式日志(Write-Ahead Logging (WAL)) 部分转自:http://www.cnblogs.com/wenBlog/p/4423497.html SQL Server中使用了WA ...

  6. WAL streaming (max_wal_senders 0) requires wal_level replica or logical

    初次使用pg的11版本,执行以下操作修改归wal_level设置: alter system set set wal_level='minimal'; 尝试重启pg,发现重启失败,并报错: waiti ...

  7. PostgreSQL 恢复模式错误日志增强 - 提供正在恢复的WAL(XLOG)文件位置

    标签 PostgreSQL , the database system is starting up , the database system is in recovery mode 背景 当数据库 ...

  8. pg 10 wal 归档同步配置

    一.rsync server(172.16.3.226) CentOS 7.2 X64 # yum install -y rsync # mkdir -p -m 0700 /db/wal_archiv ...

  9. PostgreSQL 10.1 手册_部分 III. 服务器管理_第 30 章 可靠性和预写式日志_30.5. WAL内部...

    30.5. WAL内部 WAL是自动被启用的.除了做一些设置满足存放WAL日志的磁盘空间需求以及一些必要的调节以外(参阅第 30.4 节),对管理员没有什么其他要求. 当每个新记录被写入时,WAL记录 ...

最新文章

  1. CVPR 2022放榜!录用 2067 篇,接收数量上升24%
  2. 套接字I/O模型之WSAEventSelect
  3. 路径搜索算法 python实现_A*算法在栅格地图上的路径搜索(python实现)
  4. Nutanix:将IT基础架构“隐形”,让云更简单
  5. Python中的线程、进程、协程以及区别
  6. 澳门关键字:葡萄牙、天主教、dc
  7. OpenGL 各类库的解析gl glu glut freeglut glfw glew
  8. ROS入门 TX2+Turtlebot+Kinect2.0配置记录
  9. mui栅格布局的两种方式(grid和list,宫格和列表)
  10. Oracle 中启用 scott 用户 的方法
  11. 十荟团关停全国业务 社区电商开启“降本增效”大突围
  12. spring-boot-maven-plugin 插件
  13. 1 Hello World,JavaFX Style
  14. Android context.getSystemService的简单说明
  15. mx250显卡天梯图_2020新版显卡天梯图 RTX3060性能公布
  16. 计算机配置里面没有网络选项,win7网络共享中心里面的更改适配器设置里面没有无线网络连接...-win7适配器没有无线网络连接,win7网络适配器未...
  17. 一个超好看的音乐网站设计与实现(HTML+CSS)
  18. 剧白白 v3.1.1 修改版 (强大的最新影视在线平台)
  19. 运放的参数详解及应用电路
  20. 苹果外接屏幕鼠标移动方向问题

热门文章

  1. android studio gradle 下载失败万能解决方案
  2. 大数据决定事件营销(Event Marketing)的成败
  3. 君子签区块链电子合同助力二手车异地交易签约、档案管理全面电子化
  4. OpenWrt使用sstp-client(1)
  5. 数字孪生概念股四方伟业抢滩IPO 依赖华为拓客应收账款暴增成隐忧
  6. 关于矩阵的英文词组 (转)
  7. 算法与数据结构 --- 串,数组和广义表 --- 串
  8. 八、串,数组和广义表
  9. 三菱PLC FX系列 结构化编程/FBD.4工位转盘带4个步 进,PLC程序有完整的注释,有威伦触摸屏程序,电气图纸,I/O表,电气BOM.
  10. 【通关MySQL】Win11如何将MySQL卸载干净?