事物的隔离级别和传播属性

1.ACID:原子性、一致性、隔离性、持久性

2.事务:显示,隐士事物

3.不一致性:

  更新丢失(覆盖了)、脏读(读取到了未提交的数据)、不可重复读(两次读取的结果不一致)

4.

  四个隔离级别:--主要保证查询时最新的

  READ UNCOMMITTED --不申请X锁与S锁

  READ COMMITTED     --申请S锁

  REPEATABLE READ    --锁定查询结果,这样其他事务不可以更新查询到的结果数据

  SERIALIZABLE           --数据集上放置一个范围锁

  七个传播属性:--保证事物异常回滚

  propagation_required  支持当前没有开启一个新事物

  propagation_support  支持当前没有就无事物运行

  propagation_new_required 开启新事物

  propagation_mondatory 必须有事物,没事物抛异常

  propagation_never 不要事物,有则异常

  propagation_not_support 非事物运行,有则挂起事物

===================================================

重要:

事物的隔离级别针对的是查询的场景

事物的传播属性针对的回滚或者提交的场景

================================================

读取和写入共享的变量,理论上都应该加锁,保证原子性(操作数据的仅仅只有一个线程,不会出现多个同时修改)和可见性(多个线程看的共享数据都是一致的)

本质就是对于资源进行控制访问(也就是PV操作)

  

原文地址:https://www.cnblogs.com/gstsyyb/p/3847853.html