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

长春市快速建站网站网络电话免费版

长春市快速建站网站,网络电话免费版,传统网站和手机网站的区别是什么,网站建设ps模板概念 InnoDB的MVCC(Multi-Version Concurrency Control)即多版本并发控制,是一种用于处理并发事务的机制。它通过保存数据在不同时间点的多个版本,让不同事务在同一时刻可以看到不同版本的数据,以此来减少锁竞争&…

概念

InnoDB的MVCC(Multi-Version Concurrency Control)即多版本并发控制,是一种用于处理并发事务的机制。它通过保存数据在不同时间点的多个版本,让不同事务在同一时刻可以看到不同版本的数据,以此来减少锁竞争,提高数据库的并发性能,同时保证事务的隔离性。

实现原理

隐藏列

InnoDB会为表中的每行记录添加三个隐藏列:

  • DB_TRX_ID:记录最后一次对该行记录进行插入或更新操作的事务ID。当进行删除操作时,也会将其视为一次更新操作,只是会将该行记录标记为已删除。
  • DB_ROLL_PTR:回滚指针,指向该行记录的上一个版本所在的回滚段。通过这个指针,能找到该行记录的历史版本。
  • DB_ROW_ID:如果表没有主键,InnoDB会自动生成一个隐藏的自增主键。
回滚段(Rollback Segment)

回滚段用于存储数据的旧版本。当一个事务对某行记录进行更新或删除操作时,InnoDB不会直接覆盖原数据,而是将旧版本的数据复制到回滚段中,并更新当前行的DB_TRX_IDDB_ROLL_PTR。这样,就可以保留数据的历史版本,供其他事务查看。

事务ID

每个事务在启动时都会被分配一个唯一的事务ID,且这个ID是按照事务启动的顺序依次递增的。

可见性判断规则

在不同的事务隔离级别下,InnoDB根据事务的开始时间和记录的隐藏列信息来判断哪些版本的数据对当前事务是可见的。以下以可重复读(REPEATABLE READ)隔离级别为例说明:

  • 当事务开始时,会获取一个当前系统中所有活跃事务ID的列表。
  • 对于要查询的每一行记录:
    • 如果该行记录的DB_TRX_ID小于当前事务开始时活跃事务ID列表中的最小值,说明该行记录是在当前事务开始之前就已经提交的事务修改的,当前事务可以看到这个版本的数据。
    • 如果该行记录的DB_TRX_ID大于当前事务开始时活跃事务ID列表中的最大值,说明该行记录是在当前事务开始之后才开始的事务修改的,当前事务看不到这个版本的数据。
    • 如果该行记录的DB_TRX_ID在当前事务开始时活跃事务ID列表的范围内,需要进一步判断该事务是否已经提交。如果已经提交,当前事务可以看到这个版本的数据;如果未提交,当前事务看不到这个版本的数据。

不同事务隔离级别下的MVCC表现

读未提交(READ UNCOMMITTED)

此隔离级别下,MVCC基本不起作用。事务可以读取到其他事务未提交的数据,不会考虑数据版本的可见性规则,可能会出现脏读问题。

读已提交(READ COMMITTED)
  • 每次查询时都会生成一个新的快照,即获取当前最新的活跃事务ID列表。
  • 事务只能看到已经提交的事务所做的更改,避免了脏读问题,但可能会出现不可重复读问题,因为在同一个事务中不同时间点的查询可能会看到不同版本的数据。
可重复读(REPEATABLE READ)
  • 事务在开始时会生成一个快照,在整个事务期间都会使用这个快照。
  • 同一个事务中多次读取相同的数据,看到的版本始终是一致的,避免了不可重复读问题,但可能会出现幻读问题(不过InnoDB通过间隙锁等机制在一定程度上解决了幻读问题)。
串行化(SERIALIZABLE)

该隔离级别下,MVCC不发挥作用。事务会对读取的数据加共享锁,对写入的数据加排他锁,事务之间是串行执行的,避免了所有并发问题,但会导致并发性能极低。

MVCC的优点

  • 提高并发性能:多个事务可以同时对数据进行读写操作,减少了锁竞争,从而提高了数据库的并发处理能力。
  • 实现事务隔离:不同的事务可以看到不同版本的数据,从而实现了不同级别的事务隔离,保证了数据的一致性和完整性。
  • 避免死锁:由于减少了锁的使用,降低了事务之间相互等待锁的情况,减少了死锁的发生概率。

MVCC的局限性

  • 占用额外存储空间:为了保存数据的多个版本,需要使用回滚段来存储旧版本的数据,这会占用额外的存储空间。
  • 增加系统复杂度:MVCC的实现需要维护隐藏列、回滚段和事务ID等信息,增加了系统的复杂度和管理难度。
  • 可能导致长事务问题:如果一个事务长时间不提交,会保留大量的旧版本数据,可能会导致回滚段空间不足,影响系统性能。

文章转载自:

http://47Ce0Ljm.qxdrw.cn
http://R0AcgEdw.qxdrw.cn
http://LhJiVhpK.qxdrw.cn
http://8KxNm4cz.qxdrw.cn
http://GXuJyXYt.qxdrw.cn
http://xL8KGWPR.qxdrw.cn
http://gnm3spgl.qxdrw.cn
http://vGYdoHet.qxdrw.cn
http://UcMNJltI.qxdrw.cn
http://VVU2ECCZ.qxdrw.cn
http://RUbShvjJ.qxdrw.cn
http://7uJ673oS.qxdrw.cn
http://F5vABNxj.qxdrw.cn
http://cFSz2VfY.qxdrw.cn
http://tLLxpZnt.qxdrw.cn
http://HVxuLrut.qxdrw.cn
http://1mECi2CD.qxdrw.cn
http://EMmVfirB.qxdrw.cn
http://sr4wwBGP.qxdrw.cn
http://XfxIbf7S.qxdrw.cn
http://J9jcyNCC.qxdrw.cn
http://3s4j7PcN.qxdrw.cn
http://wldz3G1J.qxdrw.cn
http://zlNv0Yt4.qxdrw.cn
http://le7ojXFw.qxdrw.cn
http://j95zwArY.qxdrw.cn
http://J7c7QXRc.qxdrw.cn
http://kNmXWwTl.qxdrw.cn
http://74DP5wPL.qxdrw.cn
http://1J7KCZzW.qxdrw.cn
http://www.dtcms.com/wzjs/738149.html

相关文章:

  • 佛山外贸网站建设资讯丰台网站建设公司
  • 集团酒店网站建设制作网站能挣钱
  • 住建部工程建设标准网站电脑网站 源码
  • asp做购物网站app制作平台推荐
  • 个人网站用wordpress吗推荐一些做电子的网站
  • 网站页面如何设计图今天天津最新通告
  • 网站开发技术孵化网页一键生成小程序
  • 做网站挣钱快又多爱站工具包的模块
  • 南阳集团网站建设网站开发 网页设计北京师范大学出版社
  • 做一个网站多久子目录安装wordpress
  • 微信上建微网站要钱吗wordpress 仿头条主题
  • 广州市海珠区建设局网站网站制作流程一般制作流程?
  • 毕业设计做网站应该学什么贵阳网站建设多钱钱
  • 海南做网站的技术公司个人网站模板h5
  • 做数字艺术设计的网站企业网站首页效果图设计与制作
  • 做网站编辑要会什么陕西网站建设咨询
  • 网站托管 建设方案成都建设网站的公司有哪些
  • 比较好的h5网站新乐市建设银行网站
  • 青海省建设厅报名网站成都装修建材网站建设
  • 扁平化网站模板专业网站定制团队
  • 泸州建设厅官方网站面料做电商 哪个网站好
  • 当涂县微网站开发免费网站的资源可以发公众号吗
  • 装修的网站信息网站 cms
  • 云南专业网站建站建设姜堰区住房和城乡建设局网站
  • 视频网站怎么建产品销售型企业网站
  • 做co网站wordpress 功能块
  • 无锡网站建设在哪里网络小白如何建立个人网站
  • 云建站的正确步骤网站开发工程师中级高级
  • 网站建设经验与团队wordpress如何增加产品类目
  • 四川省住房和城乡建设厅网站电话鲜花网站设计