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

做自媒体搬运文章的网站万网的app叫什么

做自媒体搬运文章的网站,万网的app叫什么,企业网站建设及维护,凡客v 网上商城InnoDB是一个带有ACID事务支持的存储引擎,其中redo log和undo log是其实现原子性、一致性、隔离性和持久性(ACID)的重要机制。 Redo Log(重做日志) Redo log主要用于实现事务的持久性。它记录了后续可以用来恢复数据…

InnoDB是一个带有ACID事务支持的存储引擎,其中redo log和undo log是其实现原子性、一致性、隔离性和持久性(ACID)的重要机制。

Redo Log(重做日志)

Redo log主要用于实现事务的持久性。它记录了后续可以用来恢复数据的“重做”操作。如果数据库崩溃,可以使用redo log记录复现完整的数据修改过程。Redo日志关注的是数据页的物理修改,并且这些记录是在事务提交之前写入的。通常,这些日志按照先后顺序被连续地写入到日志文件,这减少了IO操作的随机性,有助于提高性能。

Redo日志文件通常作为一个循环使用的日志组维护,一个文件满了之后就会滚动到下一个,形成一个循环。一旦数据被安全地写入到磁盘上的表里,相关的redo日志就可以被重用。

Undo Log(撤销日志)

Undo log主要用于实现事务的原子性和一致性。它记录了可以用来撤销每一个操作的信息。如果一个事务部分完成就失败或者被中止了,数据库将利用undo log来回滚事务对数据的修改,确保数据库能够返回到事务开始之前的一致状态。

Undo日志还用于实现事务的隔离性。在可重复读(REPEATABLE READ)和读已提交(READ COMMITTED)隔离级别中,读取操作需要访问事务开始之前的数据版本。如果在事务中修改了数据,这些旧的数据版本可以通过undo记录来访问。Undo日志存储在undo表空间中,不断积累的undo日志会定期清理,例如当所有需要该记录的事务都完成的时候。

Redo和Undo工作流

在一个数据库事务的生命周期中,redo和undo log通常这样工作:

  1. 当事务开始时,它可能会读取一些数据并更新它们,这些更新实际上写入了内存中的数据页(并不直接写入磁盘)。

  2. 数据库将这些修改操作记录到undo log中,这样如果事务需要回滚,就可以恢复原先的数据。

  3. 同时,将修改操作也记录到redo log中。如果数据库系统崩溃,事务的修改可以通过redo操作重新应用。

  4. 当事务提交时,数据库确保所有的redo log都已经写入了磁盘。这种写前日志(write-ahead logging)的策略保证了即使数据库在此时崩溃,所有提交的事务的修改都不会丢失。

  5. 提交事务后,数据库还会继续将内存中更改过的数据页刷新到磁盘中,这个过程可以异步进行,不需要立即完成,因为重做日志已经安全写入。

  6. 清理阶段,事务完成后,如果undo log不再需要,它们将被删除。

重要的是要理解,redo log记录的是如何重做一个操作,而undo log记录的是如何撤销一个操作。Redo log在事务提交时写入磁盘保证了持久性,而undo log让事务可以回滚到任何之前的状态来保证原子性和一致性。两者组合保障了事务的完整性和数据库的稳定性。

Bin Log

binlog有三种日志格式

1. STATEMENT(基于语句的复制Statement-Based Replication, SBR): 每个数据库更改(如INSERT, UPDATE, DELETE)都会以SQL语句的形式记录在二进制日志文件中。

2. ROW(基于行的复制Row-Based Replication, RBR): 而不是记录SQL语句,基于行的格式会记录更改了哪些行以及这些行如何改变。它记录了每个更改的具体行和列的新值。

3. MIXED(混合格式Mixed-Based Replication, MBR): MySQL会智能地选择使用基于语句或基于行的复制格式。对于大多数语句,它使用基于语句的格式,因为这通常更有效(占用更少的空间并且在某些情况下复制更快)。然而,对于那些可能导致数据不一致的语句(例如,含有`NOW()`, RAND(), 或者用户定义的函数),它会使用基于行的格式。

`MIXED` 模式基本上是一个折中方案,它试图平衡基于语句的复制的效率和基于行的复制的一致性。在某些场景下,基于语句的复制可能会导致主从服务器之间的数据不一致,因为某些非确定性的函数可能在主服务器和从服务器上产生不同的结果。在这些情况下,使用 MIXED`模式可以确保复制的正确性,同时保持尽可能高的效率。

要在MySQL中设置复制格式,可以在配置文件 my.cnf(或 my.ini)中或通过命令行设置 binlog_format变量,

例如

[mysqld]
binlog_format=MIXED

或者动态设置:

SET GLOBAL binlog_format = MIXED;

务必记得,改变二进制日志格式会影响所有随后的数据更改事件,所以在生产系统中修改它之前需要仔细考虑,并保证主从数据库设置的一致性,避免复制错误。

http://www.hrbkazy.com/news/25846.html

相关文章:

  • 做网站模板赚钱吗流程优化
  • 凌天科技 wordpress百度seo软件优化
  • 织梦网站专题模板seo推广公司教程
  • 网站建设报价比较seo兼职外包
  • 厦门律师网站建设百度投诉电话客服24小时
  • 做品牌 需要做网站吗好看的网站ui
  • 网站开发学什么专业优化网站建设
  • seo博客网站怎么做百度文库个人登录入口
  • 建网站可以卖钱html网页制作动态效果
  • 哪个网站做相片书好常州免费网站建站模板
  • 淮北建设工程交易中心seo推广培训班
  • 广州建网站报价seo论坛
  • 大型的营销型网站建设疫情最新数据消息地图
  • 免费咨询律师不收费网站优化排名
  • 呼和浩特市网站公司营销案例
  • 网页设计与制作策划方案800字seo公司 杭州
  • 口碑营销有哪些方式郑州seo培训
  • 沈阳网站建设那家好淘宝关键词查询工具
  • 高清素材图片的网站郑州seo服务技术
  • 介绍自己的做的网站站长之家网站排名
  • 个人备案网站可以做电影站吗怎样在网上推广
  • 网站变宽屏怎么做linux网站入口
  • 笔记本做网站外网访问重庆百度seo
  • 临沂新增疫情最新情况seo教程seo优化
  • 淘宝网做宝贝详情用哪个网站企业品牌营销推广
  • 做网站建设一般多少钱福州百度seo代理
  • asp网站500错误iis7网络营销方案怎么写
  • wordpress 主题 搜索引擎谷歌搜索优化seo
  • 企业网站备案审核需要多长时间seo宣传
  • 个体户可以注册网站建设服务百度权重优化软件