往期精选(欢迎转发~~)
MySQL InnoDB死锁问题在我们应用程序设计时,经常困扰着我们,一旦发生死锁就会造成事务回滚;对于百度钱包,发生死锁就会造成接口失败,从而严重影响用户体验,并且耗费系统资源,所以在业务设计上我们要尽量避免死锁。俗话说,知己知彼方能百战不殆,所以接下来我们将叙述MySQL中常见发生的四种死锁案例,同时帮助读者一起分析并深入了解这几种死锁发生的原因,通过掌握这些,我们就能避免大部分MySQL InnoDB的死锁问题,或者在发生死锁问题时,能够帮助大家更快排查到死锁原因。
1. 环境准备
在具体案例分析之前,我们需要创建一些用于以下案例分析需要的表与初始化数据;具体如下:
表authors(engine=InnoDB):
Field
|
Type
|
Null
|
Key
|
Default
|
Extra
|
---|---|---|---|---|---|
au_id | int(11) | NO | PRI | NOT NULL | |
varchar(100) | NO | NULL | |||
au_name | varchar(100) | NO | NULL |
存储记录为:
au_id |
|
au_name |
---|---|---|
1 | first_au@163.com | first_au |
3 | second_au@163.com |