您的位置:首页 > 数据库 > MySQL

mysql事物隔离级别

2018-01-15 16:13 507 查看
复习巩固加深印象

一。事务(ACID原子性,隔离性,一致性,持久性)

二。事务隔离级别

通常并发事务处理:

1》写-写,存在更新丢失问题

2》读-写,有隔离性问题,可能遇到脏读,不可重复读,幻读
其中:

1.脏读:A事务读到B未提交的数据

2.不可重复读:A事务第二次读时读到了B事务提交的写数据,可能导致2次读到的数据不一致

3.幻读:A事务根据读到的数据进行写操作,同时B也根据此数据进行写操作并提交。A提交完 B发现自己的数据丢失了

 AB事务根据基础数据进行操作提交后发现结果可能并不是如自己所想。

不可重复读和幻读很类似,但也不同,前者能读到其它事务已经提交的数据,后者读不到其它事务已提交的数据!相同的是都是2次确认发现不对,且都是由于其他事务介入导致结果异常。解决方案很多,但核心思想,个人认为还是将事务串行化,只不过表现方式不同而已。

serializable(可串行化),最高级别,典型的悲观锁思维,数据到这里不会出现并发问题(串行执行),安全性最高。可以解决幻读,不可重复读,脏读。

repeatable-read(可重复读)对于同一份数据,任何事务在其事务周期内所读到的结果都是一样的。可以解决不可重复读,脏读。  mysql默认事务隔离级别。

read-committed(已提交读)可以读到已提交的数据。可以解决脏读。

read-uncommitted(读一切)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: