示例MySQL事务隔离级别以及脏读、幻读、不可重复读

未提交读:脏读是可能的,不可重复读是可能的,幻读也是可能的。
这就是坑。

读提交:不可能出现脏读,可能出现不可重复读,也可能出现幻读。

可重复读:不可能脏读、不可能不可重复读、可以幻读。
InnoDB 使用 Next-KeyLock 来避免此级别的幻读。

序列化:脏读是不可能的,不可重复读是不可能的,幻读是不可能的。

实用提醒:根据业务需求选择合适的隔离级别,避免数据不一致问题。

数据库事务隔离级别有哪些

陷阱如下:虽然高隔离级别可以防止脏读、非重复读和幻读,但它会显着降低并发性能。

不信:默认的隔离级别并不是最佳选择,应该根据业务需求进行调整。

不要这样做:不要盲目依赖默认的数据库隔离级别。
您应该根据实际应用场景选择合适的隔离级别。

MySQL事务中四种隔离级别

说白了,MySQL通过四级事务隔离来控制并发数据访问行为,防止数据入侵。
这很简单。
首先,我们来谈谈最重要的事情。
最高级别的隔离是可串行化。
由于有红绿灯,由于路上只有一辆车在行驶,所以数据一致性很强,但由于交通拥堵,碰撞效果会很低。

还有一点,普遍缺乏隔离性,可以反复阅读。
就像火车一样。
所有乘客同时看到相同的停车标志,确保阅读信息的一致性。
然而,如果添加新的停车标志(新信息),乘客就看不到了。
这就是所谓的“读书”。

还有另一种类型的键,例如提交读数的字段,例如总线。
与此同时,所有乘客都看到相同的标志。
但如果公交车还没有到终点,乘客下车后看到的信号灯不同,就会出现“不重复读”的现象。

一开始我也认为隔离度越高在各个层面都越好,但后来我发现这是错误的,因为隔离度越高就像一条布满红绿灯的道路。
虽然安全,但效率低下。
等等,有肮脏的教训是另一回事,就像在餐馆里,厨师做了一道糟糕的菜,但你直到吃了才注意到。

选择合适的单品时,就像搭配衣服一样,应该根据您的需求而定。
你怎么认为?