目录
当多个事务同时访问同一数据时,比如写操作,应该让这些事务先后执行以此保证事务的隔离性,但又想同一时刻尽可能多地处理访问请求,所以数据库设立了不同的隔离级别,牺牲部分隔离性而获得性能上的提升。关于隔离级别,SQL标准制定了四种隔离级别,MySQL中对这四种隔离级别的支持可能跟其他数据库有差异。
未提交的读(Uncommitted Read)
可以看到其他事务尚未提交的修改,会发生脏读、不可重复读、幻读的问题。
提交的读(Committed Read)
事务提交之后,其他的事务才可以看到。它是Oracle默认的隔离级别,会发生不可重复读和幻读,但不会出现脏读。通过共享锁和排他锁可解决不可重复读,幻读可通过记录锁和间隙锁来解决。
可重复读(Repeatable Read)
一个事务里面对同一个数据发起多次访问,得到的数据都是一样的,我们就称它为可重复度。它是Mysql默认的隔离级别