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

网站权重转移做排名手机域名解析错误

网站权重转移做排名,手机域名解析错误,软文写作兼职,太原网站建设哪家效益快MVCC机制 MVCC(Multi-Version Concurrency Control) 即多版本并发控制,了解mvcc机制,需要了解如下这些概念 事务id 事务每次开启时,都会从数据库获得一个自增长的事务ID,可以从事务ID判断事务的执行先后…

MVCC机制

MVCC(Multi-Version Concurrency Control) 即多版本并发控制,了解mvcc机制,需要了解如下这些概念

事务id

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

隐藏列

对于InnoDB存储引擎,每一行记录都有两个隐藏列trx_id、roll_pointer,如果数据表中存在主键或者非NULL的UNIQUE键时不会创建row_id,否则InnoDB会自动生成单调递增的隐藏主键row_id。
trx_id用来标记最后更新的事务id,roll_pointer用来指向上一个版本的undo_log。这样每次修改都会记录,形成一个undoLog构成的版本链。

undoLog

这个我们上面已经说过了,历史版本日志

快照读和当前读

快照读: 读取的是记录数据的可见版本(有旧的版本)。不加锁,普通的select语句都是快照读
当前读:读取的是记录数据的最新版本,显式加锁的都是当前读。该锁属于悲观锁,防止其他事务来修改更新数据,需要读取到所有提交记录中的最新数据。

select * from user where id = 1 for update; 读写锁,排他锁
select * from user where id = 1 lock in share mode; 读锁,共享锁

由于在可重复读级别中,默认是快照读,并不会读取到其他事务添加的数据。
但是如果是当前读的话,一个事务多次读取就可能会读取到其他事务插入的数据,比如查询id > 10 and id < 15的数据,原本只有11,13这两条数据,但是另一个事务可能会添加一条id=12的数据。导致幻读的产生(幻读只与插入有关)。所以后来InnoDB引入了间隙锁,默认加行锁的时候也会同时加上间隙锁。作用就是行与行直接在该事务中不能插入新的数据。需要注意的是间隙锁的前开后闭原则。

ReadView

就是在事务进行快照读的时候生成的一个记录快照,可以帮助我们解决可见性的问题。
有以下这几个属性
● 当前活跃的事务id列表,也就是操作该数据的所有未提交事务的id,可称为 trx_ids (随便起的名字)
● 当前操作该数据事务id的最小值(up_trx_limit)
● 操作该数据最大事务id+1,就是即将被分配的下一个事务id(up_trx_max)
● 创建该快照的事务id(create_trx)
需要注意,这个ReadView并不存储我们需要查询的真实数据,只有这几个属性,作用就是用来判断真实数据的版本是否符合要求,是否可以被当前事务获取到。
并且在RC可读已提交的级别下,每一次select都会生成ReadView;而在RR可重复读级别下,只有该事务的第一次select会生成ReadView;这就是RC和RR最大的不同

MVCC实现逻辑

mvcc就是通过ReadView + undoLog来实现的
判断的逻辑如下:

  1. 拿到数据中最新版本的数据,获取其中的trx_id,最近更新的事务id
  2. 判断这个trx_id是否与ReadView中的创建事务id - create_trx一致,如果一致的话证明该数据没有被其他事务修改过,可以直接返回;否则进入下一步
  3. 判断trx_id是否小于当前操作事务的最小id-up_trx_limit,是的话证明其他事务还未操作过该版本数据,可以直接返回;否则进入下一步
  4. 判断trx_id是否小于当前操作事务最大id-up_trx_max,如果大于的话,则证明这个版本的产生时间比当前查询事务还晚,那肯定是不行的,要通过数据的roll_pointer指针来获取undoLog中上一个版本的数据,回到第一步重新判断;如果过是小于的话,进入下一步
  5. 判断trx_id是否在当前未提交的活跃事务id列表中trx_ids。如果存的话,证明这个事务还未提交,需要要通过数据的roll_pointer指针来获取undoLog中上一个版本的数据,回到第一步重新判断;如果不存的话,那证明修改该数据的事务以及提交,数据可以返回

幻读问题

mvcc没有解决幻读的问题,幻读的问题是通过间隙锁来解决的
在快照读模式下,是通过mvcc机制来解决的;当前读模式下是通过间隙锁来解决的。

预告

下一章开始详细了解一下bufferPool缓存页的构成,以及缓存页如何更新,使用哪些优秀的算法等

http://www.15wanjia.com/news/195041.html

相关文章:

  • 无线路由器做中继手机能连接但无法访问网站WordPress对接微信公众号
  • scatter网站开发沈阳品牌网站建设
  • 怎么做阿里巴巴官网站自学网站建设教程
  • 哪些网站是做婴童辅食招商的个旧网站建设公司
  • 站长工具seo优化wordpress文本小工具栏
  • 网站功能建设描述书外包公司驻场能不能去
  • 网站 pngdw软件做网站
  • 动漫网站开发需求分析建设企业官网模板
  • 小橘子被做h网站泰安信息平台体温
  • 合肥网站建设是什么意思可视化手机网站开发工具
  • 国外免费推广网站免费app制作平台下载
  • 浙江建站管理系统价格昆明平台开发公司
  • 江苏省数字文化馆网站建设网站建设如何学
  • 自己做网站别人怎么看见做网站尺寸
  • 商业网站设计与制作移动端网站开发流程
  • 网站建设明细报价表 服务器仿 手机 网站模板html源码
  • 微网站模板标签女教师遭网课入侵直播录屏曝
  • 工具类网站开发2018建盏大师最新排名
  • 西宁网站开发多少钱wordpress 采集 伪原创
  • 龙岗企业网站制作公司亚马逊站外推广网站
  • 潍坊网站开发网站去除前台验证码
  • 做设计的搜素材上什么网站好网站建设数据库软件英文
  • 移动微网站建设二维码互联网营销宣传
  • 鼓楼区建设局网站模板网站试用
  • 网站运营需要什么条件网站开发数据共享
  • 铜陵app网站做招聘一个互联网公司可以做几个网站
  • 建设银行官方网站怎么优化
  • 全球电子商务网站排名简单的网站建设公司
  • 公司网站建设整体架构注册网站卖东西
  • 昆明网站运营上海市企业网站建设