MySQL事务隔离级别 解决并发问题

时间:2024-01-19 22:11:02

MySQL事务隔离级别

MySQL事务隔离级别 解决并发问题

1. 脏读: 骗钱的手段, 两个窗口或线程分别调用数据库转账表,转账后未提交,对方查看到账后,rollback,实际钱没转.

演示方法:

mysql默认的事务隔离级别为repeatable-read 比Oracle高,因为mysql本身弱

使用select @@tx_isolation; 进行查看

使用

MySQL事务隔离级别 解决并发问题

调整到最低级别

使用 start transaction; 开启事务 rollback; 回滚

2. 不可重复读: 事务 A 多次读取同一数据,事务 B 在事务A多次读取的过程中,对数据作了更新并提交,导致事务A多次读取同一数据时,结果 不一致。

3. 在客户端A计算表中money之和,三个数据值和本应为为300+16000+2400=18700,可计算后,居然变成了19300,这是因为把客户端B的600算进去了

,站在客户的角度,客户是看不到客户端B的,它会觉得是天下掉馅饼了,多了600块,这就是幻读,站在开发者的角度,数据的 一致性并没有破坏。但是在应用程序中,是不可取的,就要采取事务隔离级别“串行化”