数据库的并发问题和隔离级别
读未提交:可以读另一个事务没有提交的数据,如果另一个事务更改多次数据或者最后进行回滚操作,会导致脏读。
读已提交:只能读已提交的事务的数据。
可重复读:同一个事务多次读的数据相同。
序列化:严格规定各事务的执行次序。
级别\问题 | 丢失更新 | 脏读 | 不可重复读 | 幻读 |
---|---|---|---|---|
读未提交 | ||||
读已提交 | 解决 | |||
可重复读 | 解决 | 解决 | 解决 | |
序列化 | 解决 | 解决 | 解决 | 解决 |
使用说明
可重复读是大部分事务的默认隔离级别。
当数据更新操作较少时,使用读已提交或者读未提交。
当需要避免幻读问题时,使用序列化对需要划定执行顺序的事务进行排序。