数据库四大特性及事务隔离级别
1四大特性
原子性 : 事务包含的操作要么全部成功,要么全部失败。
一致性 : 事务必须使数据库从一个一致性状态转换到另一个一致性状态, (转钱)
隔离性: 多用户并发访问数据库,并发事务之间要相互隔离。
持久性: 事务一旦被提交,数据库中的数据改变就是永久的
2 不事务隔离带来问题
更新丢失: 两个事务同时提交,一个事务回滚覆盖另一个事务;或者都更新,其中一个覆盖另一个,导致另一个更新失败。
脏读:事务2读取了事务1更改但未提交的数据,之后事务1回滚,事务2读的是脏数据。
不可重复读:一个事务范围内,多次查询结果不一致。
幻读: 事务1读取某范围数据时,事务2 又添加了一条数据,当事务1再次读取时,发现范围数据不一致。
3 事务隔离级别:
1 读未提交
解释:可以读取未提交数据,
限制: 一事务写时禁止其他事务写。
解决: 更新丢失
锁:排他写锁
2 读已提交
解释: 必须提交后的数据才能被读取
限制: 一事务写时禁止其他事务读写
解决:,更新丢失,脏读
锁: 排他写锁,瞬间共享读锁
3 可重复读
解释:能重复读取
限制:一事务写时禁止其他事务读写,一事务读时禁止其他事务写
解决: 更新丢失,脏读,不可重复读
锁: 排他写锁,共享读锁
4 串行化:
解释: 事务串行,不能并行执行
限制:一事务写时禁止其他事务读写, 一事务读时禁止其他事务读写
解决:幻读
锁:范围锁或者表锁
参考 https://blog.csdn.net/qq_41378597/article/details/88377509