摘要:
1 前言 MySQL 会发生死锁么,当然会,有锁的地方,有多个事务的地方,就会出现互相争夺对方资源的情况,就会产生僵持,比如我们的业务场景:主要逻辑就是新增订单、修改订单、查询订单等操作。然后因为订单是不能重复的,所以当时在新增订单的时候做了幂等性校验,做法就是在新增订单记录之前,先通过 selec 阅读全文
摘要:
1 前言 我们这节讨论下 记录锁+间隙锁可以防止删除操作而导致的幻读吗?答案是可以的哈。 2 什么是幻读 首先来看看 MySQL 文档是怎么定义幻读(Phantom Read)的: The so-called phantom problem occurs within a transaction w 阅读全文
摘要:
1 前言 我们这节讨论下 update 语句修改数据库数据的时候,where 条件没有带上索引,会导致锁表么,说个前提,接下来说的案例都是基于 InnoDB 存储引擎,且事务的隔离级别是可重复读。 2 为什么会发生这种现象 InnoDB 存储引擎的默认事务隔离级别是「可重复读」,但是在这个隔离级别下 阅读全文