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

绵阳网站建设策划内容seo的基本工作内容

绵阳网站建设策划内容,seo的基本工作内容,哈尔滨网站建设1元钱,网站建设制作设计MVCC概念 MVCC(Multi-Version Concurrency Control) 多版本并发控制,是一种并发控制机制,用于处理数据库中的并发读写操作,它通过在每个事务中创建数据的快照,实现了读写操作的隔离性,从而避免了读写冲突和数据不一致的问题。 M…

MVCC概念

MVCC(Multi-Version Concurrency Control) 多版本并发控制,是一种并发控制机制,用于处理数据库中的并发读写操作,它通过在每个事务中创建数据的快照,实现了读写操作的隔离性,从而避免了读写冲突和数据不一致的问题。

MySQL基本并发控制机制

锁机制(当前读)

MySQL使用锁机制来控制并发访问数据库的操作,锁可以分为两种类型:共享锁(S锁)和排他锁(X锁);共享锁允许多个事务同时读取同一数据,而排他锁则只允许一个事务进行写操作。

这种方式它读取的是记录的最新版本,读取时还要保证其他并发事务不能修改当前记录,会对读取的记录进行加锁。

对于我们日常的操作,如:select ... lock in share mode(共享锁),select ...
for update、update、insert、delete(排他锁)都是一种当前读。

MVCC(快照读)

MVCC是一种高级并发控制机制,它通过创建数据的快照和版本控制来实现读写操作的隔离性。MVCC允许事务在读取数据时看到之前的版本,从而避免了读写冲突和数据不一致的问题。

简单的select(不加锁)就是快照读,快照读,读取的是记录数据的可见版本,有可能是历史数据,不加锁,是非阻塞读。

  • Read Committed(RR):每次select,都生成一个快照读。
  • Repeatable Read(RC):开启事务后第一个select语句才是快照读的地方。
  • Serializable:快照读会退化为当前读(加锁)。

MVCC的重要组件

Read View(读视图)

ReadView是快照读SQL执行时MVCC提取数据的依据,记录并维护系统当前活跃的事务(未提交的)id,也就是开始事务时的数据。

ReadView四个核心字段

快照是在每个事务开始时创建的一个数据库状态的副本,该快照包含了当前数据库中所有数据行的版本信息,每个事务在开始时会记录一个时间戳,用于标识该事务的开始时间。 读操作时,MySQL会根据事务开始的时间戳和快照中的版本信息来判断数据行的可见性。如果某个数据行的版本早于事务开始的时间戳,则该数据行对当前事务可见;反之,如果数据行的版本早于事务开始的时间戳或者被当前事务修改过,则该数据行对当前事务不可见。

不同的隔离级别,生成ReadView的时机不同:
READ COMMITTED :在事务中每一次执行快照读时生成ReadView。
REPEATABLE READ:仅在事务中第一次执行快照读时生成ReadView,后续复用该ReadView。

版本链

每个数据行都维护着一个版本链,该链表结构包含了该数据行的不同版本,每次对数据行进行修改时,MySQL会在版本链中创建一个新的版本,并将该版本与之前的版本连接起来。

版本链中的每个版本都包含了该版本的时间戳、事务ID以及数据行的值。通过版本链,MySQL能够追踪和管理数据行的历史变化,从而实现并发读写操作的隔离性。

Undo Log(回滚日志)

回滚日志,在insert、update、delete的时候产生的便于数据回滚的日志,记录了事务对数据行的修改操作。当insert的时候,产生的undo log日志只在回滚时需要,在事务提交后,可被立即删除。而update、delete的时候,产生的undo log日志不仅在回滚时需要,在快照读时也需要,不会立即被删除。如果事务读取到了已被其他事务修改的数据版本,使用undo log中的信息将数据回滚到适当的版本,以确保事务读取的数据是一致的。

当事务需要回滚时,MySQL会根据Undo Log中的信息将数据行恢复到事务开始之前的状态。 Undo Log的实现方式是将事务对数据行的修改操作记录在磁盘上的一个日志文件中,在回滚操作时,MySQL会按照Undo Log中的日志记录,逆向执行相应的操作,将数据行恢复到原始状态。

MVCC原理分析

读已提交(RC)隔离级别

RC隔离级别下,在事务中每一次执行快照读时生成ReadView。

当一个事务开始时,它会获取一个读视图,并在读视图中记录当前活跃的事务和它们的提交状态。当事务执行读操作时,它会检查读视图中的信息来确定哪些版本的数据对该事务可见。 如果一个数据行的最新版本的时间戳早于事务的读视图创建时间戳,那么该数据行对事务是可见的。如果一个数据行的最新版本的时间戳晚于事务的读视图创建时间戳,那么该数据行对事务是不可见的,因为它是其他事务在事务开始之后修改的。

读视图记录了事务开始时的数据库状态,版本链用于跟踪数据行的不同版本。通过比较读视图和版本链中的时间戳,事务可以确定哪些数据对它是可见的。

可重复读(RR)隔离级别

RR隔离级别下,仅在事务中第一次执行快照读时生成ReadView,后续复用该ReadView,所以 在一个事务中,执行两次相同的select语句,查询到的结果是一样的。

当一个事务读取数据时,它只能看到在该事务开始时间之前已经提交的版本,这样,事务可以看到一致的快照视图,而不会受到其他并发事务的影响。

当一个事务修改数据时,它会为修改操作创建一个新的版本,并将该版本的时间戳设置为当前事务的时间戳,其他事务仍然可以读取旧版本的数据,直到当前事务提交。

MVCC的优点

- 并发性能优化:MVCC允许多个事务同时读取数据库,提高了并发性能。

- 隔离性:MVCC提供了读写操作的隔离性,避免了读写冲突和数据不一致的问题。

- 降低锁冲突:MVCC使用乐观锁机制,减少了锁冲突的可能性,提高了系统的吞吐量。

http://www.tj-hxxt.cn/news/50141.html

相关文章:

  • 苏州网站推广公司百度一下知道官网
  • 有网站模板怎么做网站seo辅助优化工具
  • 英国网站后缀做网站平台需要多少钱
  • 福州哪家专业网站设计制作最好百度竞价推广代理商
  • 网站备案文件下载免费刷粉网站推广免费
  • 百度不收录哪些网站吗百度教育app
  • 鞍山网站制作价格商务软文写作300字
  • wordpress主题 门户东莞做网站优化
  • 拓者设计吧官网图片网站如何做优化排名
  • 网站设计规划书大数据营销案例分析
  • 网站域名更改app开发费用一览表
  • 触摸屏网站开发每日新闻
  • 外贸淘宝网站建设信息流广告有哪些投放平台
  • H5网站建设报价多少电商平台怎么注册
  • 淄博网站seo公司简单网页制作成品和代码
  • 澳门出差做网站维护发现漏洞百度的网址是什么呢
  • 龙岩找工作网站seo外链论坛
  • 上海地区做旧物回收的网站域名ip查询
  • 视频怎么转成网址论坛seo招聘
  • 分类型网站建设优化关键词怎么做
  • 合肥网站系统建设公司最近的新闻热点时事
  • 服装网站目标百度代运营推广
  • 廊坊关键词排名推广seo自媒体培训
  • 某企业网站建设论文seo搜索
  • mvc5 网站开发之學 pdf宝安网站建设
  • 网站建设是什么语言创建网站
  • 优惠券的网站怎么做seo网站优化优化排名
  • 网站注册信息查询百度快照推广效果怎样
  • 怎么做网站栏目关键词优化外包服务
  • 做普通网站公司吗青岛网站开发公司