mysql中innodb事务:锁级别、4个基本特性、行锁

1. 锁级别(解决问题)

  1. read uncommited(解决丢失更新:当2个或多个事务同时选择同一行,最初事务修改的值被后面事务修改的值覆盖)
  2. read conmmited(解决脏读:一个事务正在访问数据并修改数据,而修改还没提交到数据库中,另外的事务读取了这个数据,并使用了数据)
  3. repeatable read(不可重复读:当一个事务读取数据后的某个时间,再次读取这个数据,确发现和以前读取的数据不一致)
  4. Serializable (解决焕读:一个事务按照相同的查询条件重新读取以前查过的数据,却发现其他事务插入了满足其查询条件的新数据)

2. 事务的4个基本特征

  1. 原子性:事务里面的操作要么所有成功,要么所有失败
  2. 隔离性:数据库系统提供一定的隔离性,保证事务不受外部并发操作影响的'独立'环境下运行
  3. 一致性:在事务开始和完成时,数据都必须保持一致状态
  4. 持久性:事务完成之后对数据的修改是永久的

3. 行锁:读锁(共享锁),写锁(排它锁)

  1. 共享锁:多个事务共享一个数据,但是只能读,不能修改
  2. 排它锁:不能与其他锁并存,假如一个事务获取了一个数据行的排它锁,则其他事务就不能获取该行的共享锁和排它锁,但是获取排它锁的事务可以对该数据行进行读取和修改

林明潭blog
请先登录后发表评论
  • latest comments
  • 总共0条评论