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

网站的优化与网站建设有关吗石家庄网站建设方案优化

网站的优化与网站建设有关吗,石家庄网站建设方案优化,西宁网站设计高端,做二手货的网站redo log redo log (重做日志) 是 InnoDB 存储引擎独有的#xff0c;它让 MySQL有了崩溃恢复的能力#xff0c;是事务中实现 持久化的重要操作 比如 MySQL 实例宕机了#xff0c;重启时#xff0c;InnoDB 存储引擎会使用 redo log 恢复数据#xff0c;保证数据的持久性与… redo log redo log (重做日志) 是 InnoDB 存储引擎独有的它让 MySQL有了崩溃恢复的能力是事务中实现 持久化的重要操作 比如 MySQL 实例宕机了重启时InnoDB 存储引擎会使用 redo log 恢复数据保证数据的持久性与完整性。 MySQL 中数据时以页为单位查询一条记录会从硬盘中把该页的数据都加载出来加载出来的页叫做数据页会放入 Buffer Pool 中。 后续的查询都是先从 Buffer Pool 中找没有命中再去硬盘加载减少硬盘 IO 的开销提升性能。 更新表数据的时候也是如此如果 Buffer Pool 中存在需要更新的数据就会直接在 Buffer Pool 中更新。 然后会把 在某个数据页中做了什么修改 记录到重做日志缓存redo log buffer 中 接着刷盘到 redo log 文件里。 输盘时机 InnoDB 将 redo log 刷盘到磁盘上有以下几种情况 事务提交当事务提交时log buffer 里的 redo log 会被刷新到磁盘log buffer 空间不足时log buffer 中缓存的 redo log 已经占满了 log buffer 总容量的大约一半左右就需要把这些日志刷新到磁盘上。事务日志缓冲区满InnoDB 使用一个事务日志缓冲区来暂时存储事务的重做日志。当缓冲区满时会触发日志的刷新将日志写入磁盘CheckPoint 检查点InnoDB 定期会执行检查点操作将内存中的脏数据刷新到磁盘并且会相应的重做日志一同刷新以确保数据的一致性后台刷新线程InnoDB 启动了一个后台线程负责周期性地将脏页刷新到磁盘并将相关的重做日志一同刷新。正常关闭服务器MySQL 在关闭的时候redo log 都会刷入到磁盘里去。 总之InnoDB 会在多种情况下刷新重做日志以确保数据的持久性和一致性。 日志文件组 硬盘上存储的 redo log 日志文件不止一个而是以一个日志文件组的形式出现每个 redo 日志文件大小是一样的。 比如可以配置为一组 4 个文件每个文件的大小是 1 GB 整个 redo log 日志文件组可以记录 4G 的内容。它采用的是环形数组的形式从头开始写写到末尾又回到头循环写如下图 日志文件组中还有两个重要的属性分别是 write pos、checkpoint  write pos 是当前记录的位置一边写一边后移checkpoint 是当前要擦除的位置也是往后推移 每次刷盘 redo log 记录到日志文件组中write pos 位置就会后移更新 每次 MySQL 加载日志文件组恢复数据时会清空加载过的  redo log 记录并把 checkpoint 后移更新。 如果 write pos 追上了 checkpoint 表示 日志文件组满了这时候不能再写入新的 redo log 记录了MySQL 需要停下来清空一些记录并把 checkpoint 推进一下。 只要每次把修改后的数据页直接刷盘不就好了为什么需要经过redo log 刷盘呢 数据页的大小是 16KB 刷盘比较耗时可能就修改了数据页中的 几 Byte 数据为了这些数据而重新刷盘整个页有所不值。 而且数据页刷盘是随机写的因为一个数据页对应的位置可能在硬盘文件的随机位置所以性能很差。 如果是写 redo log 一行记录可能就占几十 Byte,只需要记录表空间号、数据页号、磁盘文件偏移量、更新值再加上是顺序写所以刷盘速度很快。 所以使用 redo log 形式记录修改的内容性能会远远超过刷数据页的方式这也让数据库的并发能力更强。 bin log redo log 属于物理日志记录的内容是“在某个数据页上做了什么修改”属于 InnoDB 存储引擎。 而 bin log 属于逻辑日志记录的内容是语句的原始逻辑比如“给id 为 2 的这一行的 a 字段 加 1”属于 Server 层 不管使用什么存储引擎只要发生了表数据更新都会产生 binlog 日志。 binlog 在数据库中可以起到保证数据一致性的作用因为 数据库的数据备份、主备、主主、主从都离不开 bin log 需要bin log 来同步数据。 binlog 会记录所有涉及更新数据的逻辑操作并且是顺序写。 undo log undo log回滚日志它保证了事务的原子性。 undo log 是一种用于撤销回退的日志。在事务没提交之前MySQL 会先记录更新前的数据到 undo log 日志文件里面在事务回滚时可以利用undo log 来进行回滚。 在插入一条记录时会把这条记录的主键值记录下来这样之后回滚时只需要把这个主键值对应的记录删掉即可在删除一条记录时要把这条记录中的内容都记录下来这样之后回滚时再把这些内容组成的记录插入到表中即可在更新一条记录时会把被更新的列的旧值记录下来这样之后回滚时在再把这些列更新为旧值即可 undo日志的存在形式如上图所示使用 InnoDB 存储引擎的数据库表它的聚簇索引记录都包含下面两个隐藏列 trx_id当一个事务对某条聚簇索引进行改动时就会把该事务的id记录在 trx_id 隐藏列里roll_pointer每次对某条聚簇索引记录进行改动时就会把旧版本的记录写入到 undo 日志中然后这个隐藏列是个指针指向每一个旧版本记录于是就可以通过它找到修改前的记录   另外undo log 还有一个作用就是通过 Read View 实现 MVCC(多版本并发控制)具体操作可见事务隔离级别是怎么实现的_dx1313113的博客-CSDN博客
http://www.w-s-a.com/news/185709/

相关文章:

  • 棋牌网站开发需要多少钱整网站代码 带数据 免费 下载
  • 网站建设 sql 模版猎头用什么网站做单
  • 河北保定建设工程信息网站wordpress 远程缓存
  • 手机网站开发之列表开发win7网站开发教程
  • 楚雄市住房和城乡建设局网站廊坊企业网站建设
  • 东莞规划局官方网站wordpress添加文章页不显示图片
  • 做企业网站要哪些人员百度商城网站建设
  • c语言软件开和网站开发区别多产品的网站怎么做seo
  • 收益网站制作移动互联网应用的使用情况表格
  • 专业的手机网站建设公司哪家好同城信息网站建设
  • 参与做网站的收获国外网站服务器建设
  • 西宁网站建设报价cu君博规范网站kv如何做
  • 毕业室内设计代做网站广东建设监理协会网站个人账号
  • 百度推广点击收费标准自己如何做网站优化
  • 安徽省建设监理网站广州澄网站建设公司
  • 做简历用什么网站俄罗斯搜索引擎浏览器官网入口
  • dw里响应式网站怎么做制作网站需要多少时间
  • 网站如何做双链路示范学校建设专题网站
  • 网站开发北京影视网站seo描述
  • 高端网站定制建设公司哪家好企业网络推广技巧
  • 建设公司网站的内容建筑设计图片
  • 用ps怎么做网站的效果图互联网营销师报名入口官网
  • 网站的后端怎么开发网站 白名单
  • 济宁中小企业网站建设wordpress爆破工具
  • 零基础网站建设视频商城系统平台有哪些
  • 那个网站做百科好过wordpress删除
  • 优化网站排名怎么制作网站建设数据库模板
  • 哪个建站软件比较好带论坛都有什么公司需要网站建设
  • 同城便民网站开发自己免费怎么制作网站吗
  • 数据库网站开发教程网站内部优化是什么意思