跳转到帖子

游客您好,欢迎来到黑客世界论坛!您可以在这里进行注册。

赤队小组-代号1949(原CHT攻防小组)在这个瞬息万变的网络时代,我们保持初心,创造最好的社区来共同交流网络技术。您可以在论坛获取黑客攻防技巧与知识,您也可以加入我们的Telegram交流群 共同实时探讨交流。论坛禁止各种广告,请注册用户查看我们的使用与隐私策略,谢谢您的配合。小组成员可以获取论坛隐藏内容!

TheHackerWorld官方

精选回复

发布于

数据库事务

1、事务特性

1.1、原子性

  • 即不可分割性,事务要么全部被执行,要么就全部不被执行

1.2、一致性

  • 事务的执行使得数据库从一种正确状态转换成另一种正确状态

1.3、隔离性

  • 在事务正确提交之前,不允许把该事务对数据的任何改变提供给任何其他事务

1.4、持久性

  • 事务正确提交后,其结果将永久保存在数据库中,即使在事务提交后有了其他故障,事务的处理结果也会得到保存

2、隔离级别

2.1、读未提交

  • 在该隔离级别,所有的事务都可以读取到别的事务中未提交的数据,会产生脏读问题,在项目中基本不怎么用,安全性太差

2.2、读已提交

  • 这是大多数数据库默认的隔离级别,但是不是MySQL的默认隔离级别
  • 这个隔离级别满足了简单的隔离要求,即一个事务只能看见已经提交事务所做的改变,所以会避免脏读问题
  • 由于一个事务可以看到别的事务已经提交的数据,于是随之而来产生了不可重复读和虚读等问题

2.3、可重复读

  • 这是MySQL的默认隔离级别,它确保了一个事务中多个实例在并发读取数据的时候会读取到一样的数据
  • 不过理论上,这回导致另一个棘手的问题:幻读(Phantom Read),简单的说,幻读指当用户读取某一范围的数据行时,另一个事务又在该范围内插入了新行,当用户再读取该范围的数据行时,会发现又新的“幻影”行。InnoDB和Falcon存储引擎通过多版本并发控制(MVCC, Multiversion Concurrency Control)机制解决了该问题

2.4、可串行化

  • 事务的最高级别,它通过强制事务排序,使之不可能相互冲突,从而解决幻读问题。简言之,它是再每个读的数据行上加上共享锁。在这个级别,可能导致大量的超时现象和锁竞争,一般为了提升程序的吞吐量不会采用这个

创建帐户或登录后发表意见

最近浏览 0

  • 没有会员查看此页面。