两个INSERT也能发生死锁?貌似不可思议,实际上是正常的。 本文整理过程中,先后向高鹏、王少华、苏斌等几位朋友请教确认,感谢。
开始之前,关于锁、死锁,我们要先统一下几点认知:
死锁是由于多个事务相互持有其他事务所需要的锁,结果导致事务都无法继续,进而触发死锁检测,其中某个事务会被回滚,释放相应的锁,其他事务得以正常继续;简言之,就是多个事务之间的锁等待产生了回路,死循环了;
死锁发生时,会立刻被检测到,并且回滚其中某个事务,而不会长时间阻塞、等待; 从MySQL 5.7.15开始,新增选项
innodb_deadlock_detect,没记错的话应该是阿里团队率先实现的。
【mysql】 …
Sep
07
2017
Sep
01
2017
Aug
30
2017
Aug
30
2017
Aug
29
2017
一、背景 最近凌晨05:00总是接到来自SQL防火墙的告警: group_name id user host db command
time info state BASE 1059712468 xx xx.
【云栖社区】 【数据存储与数据库】 【mysql】 【SQL】 【lock】 【Transaction】 【update】 【varchar】 …
Aug
21
2017
Aug
21
2017
Aug
21
2017
Aug
16
2017
能学到什么 什么是死锁 死锁有什么危害 典型的死锁案例剖析 如何避免死锁 一、什么是死锁 1.必须满足的条件 1. 必须有两个或者两个以上的事务 2. 不同事务之间都持有对方需要的锁资源。 A事务需要B的资源,B事务需要A的资源,这就是典型的AB-BA死锁
2.
【云栖社区】 【数据存储与数据库】 【mysql】 【lock】 【索引】 【Transaction】 …
Aug
10
2017
--- title: MySQL · mysql · MySQL replication partial transaction author: 张远 ---
# replication 概述 目前MySQL支持的replication方式多种多样 1. 普通的master-slave
异步replication 2. 半同步的semi-sync replication
【数据存储与数据库】 【mysql】 【SQL】 【线程】 【阿里技术协会】 【并行复制】 【Transaction】 …