读未提交( read uncommitt ):最低的隔离级别,允许读取尚未提交的数据变更,可能会导致脏读、幻读或不可重复读。

读已提交( read committed ):允许读取并发事务已经提交的数据,可以阻止脏读,但是幻读或不可重复读仍有可能发生。

可重复读(repeatable read):InnoDB 默认级别,对同一字段的多次读取结果都是一致的,除非数据是被本身事务自己所修改,有可能产生幻读。

可串行化(serializable):最高的隔离级别,它要求所有的 SQL 按照顺序执行。这样就克服了脏读、幻读、不可重复读。它的效率最低,但也是最安全的。

不同的隔离级别是为了解决 脏读、幻读、不可重复读

脏读不可重复读幻读
读未提交
读已提交
可重复读
可串行化