一、MySql事务隔离级别&脏读、幻读、可重复度
1. MySql隔离级别
隔离级别按照RU====》RC====》RR====》序列化,隔离级别依次变高,但是效率依次变低,尤其是高并发场景下,一般建议使用RC级别,综合考虑性能和数据隔离要求。
读未提交(Read Uncommited):
当前事务可以读取到其他事物已执行但未提交的数据,可能会导致脏读、幻读和重复读
读已提交(Read Commited):
当前事务可以读取到其他事物已经执行并且提交的数据,可能会导致幻读和重复读
可重复度(Repeatable Read):
默认隔离级别,同一个事务里,对同一数据多次读取结果是一致的,解决了脏读和重复读,可能会导致幻读
序列化(Serializable):
完全ACID原则,事务一个个执行,事务之间相互不干扰
2.脏读、幻读和重复读
脏读:
读取到了其他事务未提交的数据,比如A事务将字段x由1更新成了2&