JAVA面试备战--数据库篇(MySql)

一、MySql事务隔离级别&脏读、幻读、可重复度

1. MySql隔离级别

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

2.脏读、幻读和重复读

脏读:
读取到了其他事务未提交的数据,比如A事务将字段x由1更新成了2,未执行commit,此时B事务读取该数据,查到字段x结果为2
重复读:
同一个事务里面,对同一个数据的多次结果不一致,比如:B事务首先查询出来某一行数据字段x=1,然后A事务此时将该行数据x字段改成了2,接着B事务再次去查询,查出来改行数据字段x=2,认为存在不可重复度的问题。如果隔离级别是RR(可重复度),则此时B事务查出来x扔为1。
幻读:
与重复读比较类似,但是幻读一般是多行数据处理中。比如A事务查询出来某个

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值