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

建设局网站港府名都172分销系统

建设局网站港府名都,172分销系统,wordpress分类链接,友情链接交换平台源码事务(Transaction)是数据库区别于文件系统的重要特性之一#xff0c;事务会把数据库从一种一致状态转换为另一种一致状态。关键词事务四大特性ACIDMySql事务隔离级别MVCC多版本并发控制实现方式运行过程MVCC解决了幻读#xff1f;InnoDB解决幻读的方式事务的分类扁平事务Flat…事务(Transaction)是数据库区别于文件系统的重要特性之一事务会把数据库从一种一致状态转换为另一种一致状态。关键词事务四大特性ACIDMySql事务隔离级别MVCC多版本并发控制实现方式运行过程MVCC解决了幻读InnoDB解决幻读的方式事务的分类扁平事务Flat Transactions带有保存点的扁平事务Flat Transactions with Savepoint链事务Chained Transaction嵌套事务Nested Transaction分布式事务重做日志redo logundoinsert undo logupdate undo loggroup commitMySQL分布式事务XA事务两段式提交two-phase commit1.事务四大特性ACID原子性Atomicity一个事务必须被视为一个不可分割的最小工作单元。(要么全部做要么全部不做)一致性Consistency数据库总是从一个一致性的状态转换到另外一个一致性的状态。(银行交易例子)隔离性Isolation一个事务所做的修改在最终提交之前对其他事务不可见。持久性durability一旦事务提交其所做的修改就会永久保存到数据库中。2.MySql事务隔离级别2.1未提交读Read uncommitted(脏读)在B事务提交之前A事务可以看到B事务带来的变化。(不锁定读)2.2提交读Read committed(不可重复读)一个事务范围内在多次相同查询中可能看到不同的数据结果。(中间有B事务对其中数据进行了update等)2.3可重复读Repeatable read在同一个事务中多次读取同样记录的结果是一致的。(底层用MVCC多版本并发控制实现)(快照读)2.4串行化Serializable在读取的每一行数据上都加锁。(锁定读)InnoDB进行Serializable时每个select都会进行lock in share mode不再支持非锁定读。tips幻读A事务2次读过程中B事务在A的查询范围里插入了一条新数据于是A就看到了幻行。3.MVCC多版本并发控制InnoDB下的MVCC3.1实现方式通过在每行记录后面保存在两个隐藏的列来实现保存行的创建时间保存行的过期时间(或删除时间)注存的不是实际的时间值而是系统版本号3.2运行过程SELECT只查找版本早于当前事务版本的数据行行的删除版本要么未定义要么大于当前事务版本号INSERT保存当前系统版本号作为行版本号DELETE为删除的每一行保存当前系统版本号作为行删除标识UPDATE也就是INSERTDELETE3.3MVCC解决了幻读MVCC解决了读数据情况下的幻读没有解决修改的操作下的幻读问题。3.4InnoDB解决幻读的方式利用间隙锁。间隙锁是一个在索引记录之间的间隙上的锁。4.事务的分类InnoDB不原生支持嵌套事务其他都支持。4.1扁平事务Flat Transactions事务中最简单的一种从开始到结束其间的操作是原子的。4.2带有保存点的扁平事务Flat Transactions with Savepoint在扁平事务基础上允许回滚到同一事务中较早的一个状态。保存点是易失的。4.3链事务Chained Transaction提交事务操作和开始下一个事务操作将合并为一个原子操作。4.4嵌套事务Nested Transaction层次结构。由一个顶层事务(top-level transaction)控制各个层次的事务。处在叶节点的事务是扁平事务。任何子事务都在顶层事务提交后才提交。树中任何一个事务的回滚会引起它的所有子事务回滚。在嵌套事务中不同的子事务在数据库对象上持有的锁是不同的。这意味着比带有保存点的扁平事务更好的并发性。4.5分布式事务在分布式环境下运行的扁平事务相当于多个数据节点的事务合并在一起并满足ACID特性。5.重做日志redo logredo log是物理日志是幂等的(幂等执行一次的效果和执行若干次的效果等同)。它记录页的物理修改并在事务进行过程中不断写入。默认情况下事务提交时把重做日志缓冲写入重做日志文件并调用fsync彻底持久化次之可以通过修改参数不进行fsync只写入文件系统缓存(数据库宕机没事操作系统宕机会丢失)再次之可以通过修改参数在事务提交时不强制进行写入重做日志文件操作仅由master thread每秒进行重做日志文件的fsync操作。重做日志的写入可以保证原子性不需要doublewrite技术(因为重做日志块的大小和磁盘扇区一样都是512字节)6.undoundo存放在数据库内部的一个特殊段(segment)中称为undo segment。undo段位于共享表空间中。除了回滚操作undo的另一个作用是MVCC。即在InnoDB存储引擎中MVCC的实现是通过undo来完成。当用户读取一行记录时若该记录已经被其他事务占用当前事务可以通过undo读取之前的行版本信息以此实现非锁定读取。undo log会产生redo log这是因为undo log也需要持久性的保护。(事务在undo log segment分配页并写入undo log的这个过程需要写入redo log)undo log分为两种6.1insert undo loginsert undo log指的是在insert操作中产生的undo log。因为insert操作的记录只对事务本身可见对其他事务不可见所以这个undo log可以在事务提交后直接删除不需要进行purge操作。6.2update undo logupdate undo log指的是在delete和update操作中产生的undo log。它需要用以实现MVCC所以不能在事务提交时就删除。提交时放入undo log链表等待purge线程进行最后的删除。7.group commit每次事务提交时都进行fsync太消耗性能。可以采用group commit来进行“组提交”一次fsync刷新多个事务的重做日志。8.MySQL分布式事务InnoDB提供了对XA事务的支持通过XA事务来支持分布式事务的实现。在使用分布式事务时InnoDB的事务隔离级别必须设置为SERIALIZABLE。8.1XA事务XA事务由一个或多个资源管理器(Resource Managers)、一个事务管理器(Transaction Manager)以及一个应用程序(Application Manager)组成。资源管理器提供访问事务资源的方法。通常一个数据库就是一个资源管理器事务管理器协调参与全局事务中的各个事务。需要和参与全局事务的所有资源管理器进行通信。应用程序定义事务的边界指定全局事务中的操作。在MySQL数据库的分布式事务中资源管理器就是MySQL数据库事务管理器为连接MySQL服务器的客户端。8.2两段式提交two-phase commit分布式事务使用两段式提交的方式。第一阶段所有参与全局事务的节点都开始准备告诉事务管理器它们准备好提交了。第二阶段事务管理器告诉资源管理器执行ROLLBACK还是COMMIT。如果任何一个节点显示不能提交那么所有的节点都会被告知回滚。
http://wiki.neutronadmin.com/news/76650/

相关文章:

  • 用c做网站家具全屋定制
  • 网站开发需要用什么营销策划公司名字大全
  • 北京网站设计有名 乐云践新wordpress小工具用不
  • 安阳免费搭建自己的网站网站服务器查询平台
  • 做网站是不是太麻烦了做网站设计赚不赚钱
  • asp网站一打开就是download一个网站多个域名 seo
  • wordpress适合做什么网站网址大全黄页男女
  • 怎么用网站的二级目录做排名做电容元器件的网站有哪些
  • 网站建设的盈利模式保定网站建设方法
  • 西安米德建站超市网上商城
  • 仿顺丰优选网站源码万网网
  • iss服务器网站建设宣传中心网站建设
  • 南充网站建设网站建设注意哪些问题
  • a做爰视频免费网站廊坊企业网站排名优化
  • 海外网站测速wordpress 分页 缓存
  • 关于网络编辑作业做网站栏目新闻的ppt深圳公司注册核名官网
  • 网站推广广告企业公众号开发
  • 做网站要花多少钱丰县做淘宝网站
  • 微信网站建设app公司天眼查企业查询公司
  • 深圳龙岗建设网站高端网站建设需要的人员配备
  • 市民专线是什么站长工具 seo查询
  • 网站建设基础教程视频中企动力简介
  • 广州市网站建设制作费用网站修改标题有影响吗
  • 郑州市惠济区建设局网站广州建模培训
  • 网站建设公司在哪里中企动力销售赚得多吗
  • 做京东网站需要哪些手续余姚哪里有做淘宝网站的
  • 行业网站解决方案智能建站
  • 我要自学网做网站wordpress自动上传外链图片
  • 做一个网站的计划书商业网站怎么做
  • 为学校网站做网站推广策划wordpress高端