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

投资担保网站建设mt4网站可做黄金交易

投资担保网站建设,mt4网站可做黄金交易,手机兼职任务平台,深圳设计师品牌集中地什么是MVCC? MVCC全称多版本并发控制,是在并发访问数据库时对操作数据做多版本管理,避免因为写数据时要加写锁而阻塞读取数据的请求问题。 Innodb对mvcc的实现 1、事务版本号 每次事务开启前都会从数据库获得一个自增长的事务ID,可以从事…

什么是MVCC?

MVCC全称多版本并发控制,是在并发访问数据库时对操作数据做多版本管理,避免因为写数据时要加写锁而阻塞读取数据的请求问题。

Innodb对mvcc的实现

1、事务版本号

每次事务开启前都会从数据库获得一个自增长的事务ID,可以从事务ID判断事务的执行先后顺序。

2、表格的隐藏列
DB_TRX_ID记录操作该数据事务的事务ID;
DB_ROLL_PTR指向上一个版本数据在undo log 里的位置指针;
DB_ROW_ID:隐藏ID ,当创建表没有合适的索引作为聚集索引时,会用该隐藏ID创建聚集索引;
3、Undo log

Undo log 主要用于记录数据被修改之前的日志,在表信息修改之前先会把数据拷贝到undo log 里,当事务进行回滚时可以通过undo log 里的日志进行数据还原。

主要用途:

(1)保证事务进行rollback时的原子性和一致性,当事务进行回滚的时候可以用undo log的数据进行恢复。

(2)用于MVCC快照读的数据,在MVCC多版本控制中,通过读取undo log的历史版本数据可以实现不同事务版本号都拥有自己独立的快照数据版本。

4、Read view

在innodb 中每个事务开启后都会得到一个read_view。副本主要保存了当前数据库系统中正处于活跃(没有commit)的事务的ID号,保存的是系统中当前不应该被本事务看到的其他事务id列表。

Read view 的几个重要属性:
trx_ids: 当前系统活跃(未提交)事务版本号集合。
max_limit_id: 创建当前read view 时“当前系统最大事务版本号+1”。
min_limit_id: 创建当前read view 时“系统正处于活跃事务最小版本号”
creator_trx_id: 创建当前read view的事务版本号;
Read view 匹配条件规则
  1. 如果数据事务ID trx_id < min_limit_id,表明生成该版本的事务在生成Read View前,已经提交(因为事务ID是递增的),所以该版本可以被当前事务访问。
  2. 如果trx_id>= max_limit_id,表明生成该版本的事务在生成ReadView后才生成,所以该版本不可以被当前事务访问。
  3. 如果 min_limit_id =<trx_id< max_limit_id,需要分3种情况讨论
  • (1).如果m_ids包含trx_id,则代表Read View生成时刻,这个事务还未提交,但是如果数据的trx_id等于creator_trx_id的话,表明数据是自己生成的,因此是可见的。
  • (2)如果m_ids包含trx_id,并且trx_id不等于creator_trx_id,则Read View生成时,事务未提交,并且不是自己生产的,所以当前事务也是看不见的;
  • (3).如果m_ids不包含trx_id,则说明你这个事务在Read View生成之前就已经提交了,修改的结果,当前事务是能看见的。

READ_UNCOMMITTED 级别的事务不会获取read view 副本;

RC(read commit) 级别下同一个事务里面的每一次查询都会获得一个新的read view副本;

RR(重复读)级别下的一个事务里只会获取一次read view副本,从而保证每次查询的数据都是一样的。

MVCC+Next-key-Lock 防止幻读

InnoDB存储引擎在 RR 级别下通过 MVCCNext-key Lock 来解决幻读问题:

1、执行普通 select,此时会以 MVCC 快照读的方式读取数据

在快照读的情况下,RR 隔离级别只会在事务开启后的第一次查询生成 Read View ,并使用至事务提交。所以在生成 Read View 之后其它事务所做的更新、插入记录版本对当前事务并不可见,实现了可重复读和防止快照读下的 “幻读”

快照读是指读取数据时不是读取最新版本的数据,而是基于历史版本读取的一个快照信息(mysql读取undo log历史版本)

2、执行 select...for update/lock in share mode、insert、update、delete 等当前读

在当前读下,读取的都是最新的数据,如果其它事务有插入新的记录,并且刚好在当前事务查询范围内,就会产生幻读!InnoDB 使用 Next-key Lock 来防止这种情况。当执行当前读时,会锁定读取到的记录的同时,锁定它们的间隙,防止其它事务在查询范围内插入数据。只要我不让你插入,就不会发生幻读

当前读是读取的数据库最新的数据,当前读和快照读不同,因为要读取最新的数据而且要保证事务的隔离性,所以当前读是需要对数据进行加锁的

参考链接

https://zhuanlan.zhihu.com/p/52977862

https://juejin.cn/post/7016165148020703246?searchId=202502251734394A3BD7309987040F14B9#heading-20


文章转载自:

http://X7jDHwxX.gywfp.cn
http://m3q49eZQ.gywfp.cn
http://CcQhiOby.gywfp.cn
http://qrjz8tq3.gywfp.cn
http://0uNkDtPY.gywfp.cn
http://nZvrR7NS.gywfp.cn
http://DT7SehZ6.gywfp.cn
http://G9sdjQy3.gywfp.cn
http://5k3wn4pF.gywfp.cn
http://kCJEXcZx.gywfp.cn
http://1CLkzATL.gywfp.cn
http://xuGs1P8d.gywfp.cn
http://nxOh5hNk.gywfp.cn
http://vVv8ndkl.gywfp.cn
http://QMHOdveP.gywfp.cn
http://VfxxVXnJ.gywfp.cn
http://6hewigT9.gywfp.cn
http://O3XN6N12.gywfp.cn
http://nB67sq7y.gywfp.cn
http://go9OHpBs.gywfp.cn
http://XadcvIHh.gywfp.cn
http://RhUnQ338.gywfp.cn
http://FVcfCOtX.gywfp.cn
http://pKT6IEUe.gywfp.cn
http://NSC5jbAD.gywfp.cn
http://woaSDYjA.gywfp.cn
http://YsVU1gEO.gywfp.cn
http://KWvMkvgz.gywfp.cn
http://ama28AOP.gywfp.cn
http://DxXYZT4n.gywfp.cn
http://www.dtcms.com/wzjs/663561.html

相关文章:

  • 布局网站开发虚拟机做局域网网站服务器配置
  • 网站降权查下南阳网站seo公司
  • 什么摄像头做直播网站软文营销的成功案例
  • 在网站里文本链接怎么做福州最好的网站建设网络公司
  • 那些网站是做金融行业怎样注册网站中文域名
  • 图书网站开发的实践意义wordpress页面调用
  • 哪些网站做的好看医院做网站备案都需要什么
  • 郑州低价网站制作高端网站设计高端网站制作
  • 房地产培训网站建设企业网站开发是什么
  • 国家工信部备案网站wordpress可以换模板吗
  • 巩义网站建设模板网站建设指标
  • 枣庄建设局网站长春网站建设优化排名
  • 有个新网站专门做外贸的叫什么网络营销的特点全球性
  • 陕西有色建设有限公司官方网站静安做网站的公司
  • wordpress 改网站域名松原市新闻
  • 哈尔滨市营商环境建设监督局网站手机网站域名怎么解析
  • 90设计网站怎么绑定手机号扬中零壹网站建设
  • 什么网站做一件代发首页凡客
  • 做任务给佣金的网站有哪些敬请期待图片素材
  • 传奇网站模块下载开源crm客户管理系统
  • 石景山网站制作wordpress 自定义注册
  • 专业网站优化培训外贸原单是什么意思
  • 蓝色系 网站收款网站怎么建设
  • 宁波自助建站公司做网站比较专业的公司
  • 东莞网站建设 少儿托管广东省特色专业建设网站
  • 佛山网站制作网页网站的权重是什么意思
  • 网站设置默认首页wordpress系统和插件下载地址
  • 企业网站的功能图文排版模板
  • 常州市住房建设局网站学校资源网站建设方案
  • 建设工程质量监督站网站怎么访问wordpress