一、事务的分类
1、串行方式。
2、并行方式。
二、事务并发所产生的问题
1、数据丢失更新:两个事务同时对一组数据项更新,导致后面的更新覆盖前面的更新。
2、读“脏”数据:一个事务正在读数据,另一个更新事务尚未提交的数据。
3、不可重复读:当一个事务读取某一数据后,另一事务对该数据执行了更新操作,使得第一个事务 无法再次读取与前一次相同的结果。
三、解决并发事务的问题的解决方案----封锁
1、共享锁:一个数据对象上已存在共享锁时,其他事务可以读取数据,但不能修改数据。
2、排他锁:它所多定的资源,其他事务不能读取也不能修改。
3、更新锁:在修改操作的初始化阶段用来锁定可能要被修改的资源。
4、意向锁:意向锁表示一个事务为了访问数据库对象层的结构中的某些底层主要而加共享锁或排他 锁的意向。
四、隔离级别:
1、未授权读取:允许读“脏”数据,但不允许更新丢失,如果一个事务已经开始写数据,则允许其 他事务读此数据,但不允许同时进行写操作。
2、授权读取:读取数据的事务允许其他并行事务访问该数据,但是来提交的写事务将禁止其他适合 轴时访问该数据。
3、可重复读取:禁止不可重复读和读“脏”数据,但有时可能出现“幻读”数据。
4、序列化:它要求事务序列化执行,即事务只能一个接着一个地执行。
5、表级锁是由程序员设定的可以对SELECT、INSERT、UPDATE、DELETE语句进行精确控制,一般来 说,读取操作需要共享锁,插入、更新删除需要排它锁。
转载于:https://blog.51cto.com/xingcheng/1745130