隔离级别 存在脏读 存在不可重复读 存在幻读
未提交读 yes yes yes
提交读 no yes yes
可重复读 no no yes
序列化读 no no no
oracle、sql server默认都是提交读。
mysql默认是可重复读。
oracle 只能实现提交读和序列话读。
mysql 和sql server可以实现4中隔离级别。
sql server 提交读 会被update堵塞,可重复读会堵塞其他进程读。
mysql的innoDB引擎在上面两种隔离级别不会产生堵塞。
mysql的innoDB引擎的update原理是将原纪录标记为delete,再插入新记录,实现了并发,但性能会下降。(oracle的lob字段也是这样处理的)
sql server 是在原纪录处修改所以产生了堵塞。
oracle是通过回滚段实现的,可重复读只能通过悲观锁或乐观锁来实现。
只懂oracle很难理解4种隔离级别!!
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/16572356/viewspace-719400/
,如需转载,请注明出处,否则将追究法律责任。