数据库事务隔离级别
mysql事务隔离级别及设置
1.隔离级别
事务的隔离级别分为:未提交读(read uncommitted)、已提交读(read committed)、可重复读(repeatable read)、串行化(serializable)。
未提交读(脏读)
A事务已执行,但未提交;B事务查询到A事务的更新后数据;A事务回滚
已提交读(不可重复读)
A事务执行更新;B事务查询;A事务又执行更新;B事务再次查询时,前后两次数据不一致
可重复读(幻读)
A事务无论执行多少次,只要不提交,B事务查询值都不变;B事务仅查询B事务开始时那一瞬间的数据快照
串行化
不允许读写并发操作,写执行时,读必须等待
2.数据库设置
//设置mysql的隔离级别:
set session transaction isolation level 设置事务隔离级别
例如:
//设置read uncommitted级别:
set session transaction isolation level read uncommitted;