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

佛山网站维护英铭长沙网站建设

佛山网站维护,英铭长沙网站建设,介绍网站开发的意义,镇江网站排名优化公司多版本并发控制#xff08;MVCC#xff09;是一种用于数据库并发控制的机制#xff0c;它可以在保证数据一致性的同时#xff0c;提高数据库的并发性能。下面结合 MVCC 机制#xff0c;详细阐述常见的四种事务隔离级别#xff08;读未提交、读已提交、可重复读、串行化MVCC是一种用于数据库并发控制的机制它可以在保证数据一致性的同时提高数据库的并发性能。下面结合 MVCC 机制详细阐述常见的四种事务隔离级别读未提交、读已提交、可重复读、串行化与各种锁共享锁、排他锁、记录锁、间隙锁、临键锁之间的关系。 读未提交Read Uncommitted MVCC 机制在该隔离级别下MVCC 机制基本不发挥作用。因为此隔离级别允许一个事务读取另一个未提交事务的数据它更侧重于提高并发性能而不是通过 MVCC 来保证数据的一致性。事务在读取数据时不会基于 MVCC 去判断数据版本而是直接读取最新的数据无论该数据是否已经提交。共享锁S 锁和排他锁X 锁 此隔离级别对锁的使用进行了极大程度的弱化。一般情况下普通的读操作不会加共享锁写操作如 UPDATE、DELETE、INSERT虽可能会对受影响的行加排他锁但这种锁的限制作用相对较弱因为即使有排他锁存在其他事务也能读取未提交的数据会导致脏读。 记录锁、间隙锁和临键锁 通常不会使用记录锁、间隙锁和临键锁。由于不依赖 MVCC 来保证数据一致性也不需要这些锁来防止不可重复读和幻读问题。 读已提交Read Committed MVCC 机制MVCC 在该隔离级别中发挥重要作用。普通的 SELECT 查询采用快照读基于 MVCC 读取已提交的数据版本。每个语句执行时都会生成一个新的快照这使得在同一个事务内不同时刻执行相同的查询可能会得到不同的结果从而可能出现不可重复读的问题。共享锁S 锁和排他锁X 锁 共享锁普通的 SELECT 查询默认不会加共享锁而是利用 MVCC 进行快照读。但当使用 SELECT ... LOCK IN SHARE MODE 时会对查询结果集的行加共享锁允许其他事务同时读取这些行但阻止其他事务对这些行加排他锁进行修改。排他锁UPDATE、DELETE、INSERT 语句以及 SELECT ... FOR UPDATE 会对受影响的行加排他锁。并且这些锁是语句级别的即锁只在语句执行期间有效语句执行完毕后锁就会释放。 记录锁、间隙锁和临键锁 记录锁在执行 SELECT ... FOR UPDATE 或写操作时会对读取或修改的行加记录锁。间隙锁和临键锁一般不会使用间隙锁和临键锁。因为 MVCC 的快照读机制和语句级别的锁控制使得该隔离级别允许幻读的存在无法阻止其他事务在查询范围的间隙插入新记录。 可重复读Repeatable Read MVCC 机制MVCC 是该隔离级别实现可重复读特性的关键。在事务开始时会创建一个全局的快照事务内的所有 SELECT 查询都基于这个快照进行保证在同一个事务内多次读取相同数据的结果是一致的。不过对于当前读操作如 SELECT ... FOR UPDATE、UPDATE、DELETEMVCC 机制与锁机制共同作用来保证数据的一致性。共享锁S 锁和排他锁X 锁 共享锁普通 SELECT 查询采用快照读不会加共享锁。使用 SELECT ... LOCK IN SHARE MODE 时会对查询结果集的行加共享锁防止其他事务对这些行加排他锁进行修改。排他锁UPDATE、DELETE、INSERT 语句以及 SELECT ... FOR UPDATE 会对受影响的行加排他锁。这些锁会在事务结束提交或回滚时才释放。 记录锁、间隙锁和临键锁 记录锁在执行 SELECT ... FOR UPDATE 或写操作时会对读取或修改的行加记录锁。间隙锁当进行范围查询如 SELECT ... FOR UPDATE 或写操作涉及范围条件且查询条件没有精确匹配到所有记录时会对查询范围对应的间隙加上间隙锁防止其他事务在这些间隙插入新记录。这是为了弥补 MVCC 在处理范围插入时可能出现幻读的不足。临键锁临键锁是记录锁和间隙锁的组合。在可重复读隔离级别下对于索引记录InnoDB 通常使用临键锁来防止幻读。例如对唯一索引进行等值查询时如果记录存在使用记录锁如果记录不存在使用间隙锁对于普通索引一般使用临键锁。 串行化Serializable MVCC 机制在串行化隔离级别下MVCC 机制基本不发挥作用。因为该隔离级别要求事务串行执行所有的读写操作都需要排队进行以保证数据的绝对一致性。它不依赖 MVCC 的多版本特性来处理并发而是通过严格的锁机制来实现事务的隔离。共享锁S 锁和排他锁X 锁 共享锁普通的 SELECT 查询会自动对查询结果集的行加共享锁保证在当前事务读取数据期间其他事务不能对这些数据加排他锁进行修改。排他锁UPDATE、DELETE、INSERT 语句会自动对受影响的行加排他锁。由于事务是串行执行的任何事务的读写操作都需要等待前面事务释放相应的锁并发性能最差但能完全避免脏读、不可重复读和幻读问题。 记录锁、间隙锁和临键锁 在串行化隔离级别下记录锁、间隙锁和临键锁都会被使用以确保事务之间的完全隔离。无论是读取还是修改数据都会通过这些锁来保证同一时间只有一个事务可以访问特定的数据资源从而实现事务的串行执行。 综上所述MVCC 机制和锁机制在不同的事务隔离级别中相互配合共同影响着数据库的并发性能和数据一致性。较低的隔离级别更依赖 MVCC 来提高并发性能而较高的隔离级别则更强调锁机制来保证数据的严格一致性。
http://www.hkea.cn/news/14433815/

相关文章:

  • 济南网站建设内容信息化网站建设引言
  • 无锡装饰网站建设排名网站代码上传后无法打开
  • 做设计的公司的网站南通专业做网站
  • 孝感 网站建设好的网站设计培训机构
  • 用什么网站可以做电子书室内设计联盟官网app
  • 在线画画网站服务器网站怎么做的
  • 建网站提供下载qq群推广
  • 学校网站建设制度成都做网站做的好的公司
  • 5种有效增加网站流量平台开发需要什么技术
  • 代理备案网站网上做彩票网站排名
  • 青岛网站建设大全我的世界怎么自己做皮肤并上传网站
  • 太原h5建站石家庄 外贸网站建设公司排名
  • 网站支付接口企业推广网络营销外包服务
  • 南京专业做网站公司地址网络关键字优化
  • 如何做一网站首页杭州有没有专业做网站的公司
  • 如何建立自己的网站注册公司在哪个网站注册
  • 破解进入网站后台ml免费域名注册
  • 个人合法网站怎么做便民网免费发布信息
  • 想自己做衣服上哪个网站学南京今天重大新闻事件
  • 网站开发外文文献WordPress hitokoto
  • 企业做网站的用途石材企业网站源码
  • 怎么呢搜到自己建设的网站桂林网站设计制作
  • 做网站的资金来源扁平化设计的网站
  • 网站关键词排名优化系统阿里云服务器 个人网站
  • 西柏坡门户网站建设规划书wordpress炫酷网页
  • 视频直播网站开个电商公司需要多少钱
  • 泉州网站建设优化做网站管理怎么赚钱
  • 行业网站运营装修公司网站源码php
  • 微站网站网站建设与维护百科
  • 广州怎么做网站腾讯轻量服务器