首页 > 数据库 >MySQL——2、并发事务所带来的问题是什么?怎样去解决?MySQL的默认隔离级别是什么

MySQL——2、并发事务所带来的问题是什么?怎样去解决?MySQL的默认隔离级别是什么

时间:2024-05-26 18:59:16浏览次数:65  
标签:事务 no read 默认 查询 并发 MySQL yes 数据

一、并发事务所带来的问题

1、脏读:就是一个事务对数据进行查询操作时而另一个事物在修改这条数据但未提交,这时进行查询操作的事务就会读取到未提交的数据也就是脏数据

2、不可重复读:事务A查询一次数据接着事务B修改了数据并且已提交事务A继续执行操作查询数据读到了不一样的数据

3、幻读:事务执行查询数据时不存在,插入数据时却报错,再次查询时还是在。原因在于事务A查询的时候数据库确实没有对应索引的数据但之后事务B却进行了插入操作,事务A再次查询时还是查不到(这是因为我们已经实现了可重复读)

二、怎样去解决

对事务进行隔离

隔离级别        脏读        不可重复度        幻读

————————————————————

读取未提交

read uncommit   yes        yes        yes

————————————————————

读取已提交

read commit        no        yes        yes

————————————————————

可重复读

repeatable read no        no        yes

————————————————————

串行化

serializable        no        no        no

————————————————————

从上往下性能递减,功能递增

三、MySQL的默认隔离级别

可重复读(repeatable read)原因在于串行化虽然能解决事务并发的所有问题,但关键在于串行化会导致只有一个事务执行完成后才能继续其他事务的执行也就没有并发这一说了,效率非常低。

标签:事务,no,read,默认,查询,并发,MySQL,yes,数据
From: https://blog.csdn.net/Lemon_man_/article/details/139218679

相关文章