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

菏泽 网站建设公司安居客官网入口

菏泽 网站建设公司,安居客官网入口,国内新闻最新消息,万网如何建设网站日志系统:一条 SQL 更新语句是如何执行的? 与查询流程不一样的是,更新流程还涉及两个重要的日志模块:redo log(重做日志)和 binlog(归档日志)。 重要的日志模块:redo l…

日志系统:一条 SQL 更新语句是如何执行的?

  • 与查询流程不一样的是,更新流程还涉及两个重要的日志模块:redo log(重做日志)和 binlog(归档日志)。

重要的日志模块:redo log

  • MySQL 的 WAL 技术
    • WAL 的全称是 Write-Ahead Logging,它的关键点就是先写日志,再写磁盘。
    • 当有一条记录需要更新的时候,InnoDB 引擎就会先把记录写到 redo log 里面,并更新内存,这个时候更新就算完成了。
    • InnoDB 引擎会在适当的时候,将这个操作记录更新到磁盘里面,而这个更新往往是在系统比较空闲的时候做。
  • InnoDB 的 redo log 是固定大小的环形链表。
    在这里插入图片描述
    • 比如可以配置为一组 4 个文件,每个文件的大小是 1GB,那么总共就可以记录 4GB 的操作。
    • 从头开始写,写到末尾就又回到开头循环写。
    • write pos 是当前记录的位置,一边写一边后移,写到第 3 号文件末尾后就回到 0 号文件开头。
    • checkpoint 是当前要擦除的位置,也是往后推移并且循环的,擦除记录前要把记录更新到数据文件。
    • write pos 和 checkpoint 之间的空白部分,可以用来记录新的操作。
    • 如果 write pos 追上 checkpoint,这时候不能再执行新的更新,得停下来先擦掉一些记录,把 checkpoint 推进一下。
  • 有了 redo log,InnoDB 就可以保证即使数据库发生异常重启,之前提交的记录都不会丢失,这个能力称为 crash-safe。
    • redo log 用于保证 crash-safe 能力
    • innodb_flush_log_at_trx_commit 这个参数设置成 1 的时候,表示每次事务的 redo log 都直接持久化到磁盘。
    • 这个参数建议你设置成 1,这样可以保证 MySQL 异常重启之后数据不丢失。

重要的日志模块:binlog

  • redo log 是 InnoDB 引擎特有的日志,Server 层也有自己的日志,称为 binlog(归档日志)。
    • redo log 是 InnoDB 引擎特有的;binlog 是 MySQL 的 Server 层实现的,所有引擎都可以使用。
    • redo log 是物理日志,记录的是“在某个数据页上做了什么修改”;binlog 是逻辑日志,记录的是这个语句的原始逻辑,比如“给 ID=2 这一行的 c 字段加 1 ”。
    • redo log 是循环写的,空间固定会用完;binlog 是可以追加写入的。“追加写”是指 binlog 文件写到一定大小后会切换到下一个,并不会覆盖以前的日志。
    • Redo log 不是记录数据页“更新之后的状态”,而是记录这个页 “做了什么改动”。Binlog 有两种模式,statement 格式的话是记 sql 语句,row 格式会记录行的内容,记两条,更新前和更新后都有。
      • sync_binlog 这个参数设置成 1 的时候,表示每次事务的 binlog 都持久化到磁盘。
      • 这个参数也建议你设置成 1,这样可以保证 MySQL 异常重启之后 binlog 不丢失。

两阶段提交

  • 为什么必须有“两阶段提交”呢?这是为了让两份日志之间的逻辑一致。
  • 如果不使用“两阶段提交”,那么数据库的状态就有可能和用它的日志恢复出来的库的状态不一致。
  • 当你需要扩容的时候,也就是需要再多搭建一些备库来增加系统的读能力的时候,现在常见的做法也是用全量备份加上应用 binlog 来实现的,这个“不一致”就会导致你的线上出现主从数据库不一致的情况。
  • redo log 和 binlog 都可以用于表示事务的提交状态,而两阶段提交就是让这两个状态保持逻辑上的一致。
http://www.yayakq.cn/news/356681/

相关文章:

  • 谷歌俄语网站ppt做杂志模板下载网站有哪些
  • 无锡企业做网站sem算网站设计吗
  • 赣州建设局网站微信代理网站模板
  • 学生作品网网站广州排前三的seo公司
  • 企业网站建设推广方案怎么写淄博网站排名外包
  • wordpress 旅游网站个人开发app最简单方法
  • 易语言对做网站有什么帮助腾冲市住房和城乡建设局网站
  • 管理咨询网站哪做网站好
  • 上海杨浦网站建设wordpress host头攻击
  • 做百度移动端网站软件数据中台主要实现哪些功能
  • 网站建设与案例管理的心得体会网站还是app
  • 网站建设类型分类网站wap版怎么做
  • 滑板网页网站设计成都景观设计公司排名
  • 网站没有地图怎么做的网站建设优化哪家专业
  • 前端角度实现网站首页加载慢优化网站标题title
  • 许昌网站建设视频弹幕网站怎么做
  • 淘宝网站所用编码洛阳作公司网站
  • 网站建设留言板公司的网站开发费计入什么科目
  • asp自助建站系统wordpress查询数据库结构
  • 公司网站设计主页部分怎么做wordpress 查看大图
  • 免费自己制作网站那些网站需要备案
  • 免费自助建站系统平台 贴吧外包网站设计哪家好
  • 浦东做网站网站管理助手4.0 破解
  • 手表购买网站郑州达云通网站建设公司
  • 租用了空间 怎样上传网站程序由前台有后台的网站怎么做
  • 网站开发工程师年薪多少营销qq官网
  • 网站建设叫什么软件怎样维护网站建设
  • 企业网站设计步骤自己做的网站怎么推广
  • 的网站开发工具手机3g门户首页
  • 廊坊公司快速建站泊头做网站的公司