数据库四大特性及事务隔离级别

 

 

1四大特性

原子性 : 事务包含的操作要么全部成功,要么全部失败。

一致性 : 事务必须使数据库从一个一致性状态转换到另一个一致性状态, (转钱)

隔离性: 多用户并发访问数据库,并发事务之间要相互隔离。

持久性: 事务一旦被提交,数据库中的数据改变就是永久的

2 不事务隔离带来问题

 更新丢失:  两个事务同时提交,一个事务回滚覆盖另一个事务;或者都更新,其中一个覆盖另一个,导致另一个更新失败。

 

 脏读:事务2读取了事务1更改但未提交的数据,之后事务1回滚,事务2读的是脏数据。

 

不可重复读:一个事务范围内,多次查询结果不一致。

幻读: 事务1读取某范围数据时,事务2 又添加了一条数据,当事务1再次读取时,发现范围数据不一致。

 

 

3 事务隔离级别:

1 读未提交

  解释:可以读取未提交数据,

  限制: 一事务写时禁止其他事务写。

  解决: 更新丢失

锁:排他写锁

 

2 读已提交

  解释: 必须提交后的数据才能被读取

  限制: 一事务写时禁止其他事务读写

  解决:,更新丢失,脏读

锁: 排他写锁,瞬间共享读锁

 

3 可重复读

  解释:能重复读取

  限制:一事务写时禁止其他事务读写,一事务读时禁止其他事务写

  解决: 更新丢失,脏读,不可重复读

  锁: 排他写锁,共享读锁

 

4 串行化:

  解释: 事务串行,不能并行执行

  限制:一事务写时禁止其他事务读写, 一事务读时禁止其他事务读写

  解决:幻读

  锁:范围锁或者表锁

 

 参考 https://blog.csdn.net/qq_41378597/article/details/88377509

 

posted @ 2023-03-07 10:59  安小白learning  阅读(47)  评论(0编辑  收藏  举报