因为我老是容易忘记 或者搞错 这些 内容,而 有一次面试还问到了,突然想不起了。总结一下
会发生的数据问题 | 设置的事务隔离级别 | 解决办法:设置事务隔离级别 | 描述 | 默认数据库设置的事务 |
---|---|---|---|---|
脏读 | 读未提交 | 读已提交 | 比如:A事务会读取到B事务未提交的事务,一旦B事务回滚就好 发生 脏读 | |
不可重复读 | 读已提交 | 可重复读 | A事务第一次读取的内容,但是之后B事务 修改了 内容,A事务第二次读取内容的时候,就和和第一次读取的内容不一致,就发生 不可重复读 | 一般的数据库都是 读已提交 |
幻读 | 可重复读 | 序列化 | A事务第一次读取的时候,只有一条数据, 此时其他事务不可更新该数据 但是事务B 新增了一条数据,那么A事务第二次读取 发现了2条数据,发生了 幻读 | mysql |
无 | 序列化 | 解决 脏读,不可重复读,幻读,但是 性能很差 |
参考 https://zhidao.baidu.com/question/584905853.html
https://www.cnblogs.com/ubuntu1/p/8999403.html
https://baijiahao.baidu.com/s?id=1629344395894429251&wfr=spider&for=pc