看懂这篇文章,你就懂了数据库死锁产生的场景和解决方法

一、什么是死锁

加锁(Locking)是数据库在并发访问时保证数据一致性和完整性的主要机制。任何事务都需要获得相应对象上的锁才能访问数据,读取数据的事务通常只需要获得读锁(共享锁),修改数据的事务需要获得写锁(排他锁)。当两个事务互相之间需要等待对方释放获得的资源时,如果系统不进行干预则会一直等待下去,也就是进入了死锁(deadlock)状态。

二、死锁产生的场景1.数据库表准备1.1. 创建数据库表#创建数据库 create database chuanzhi; #选择数据库 use chuanzhi; #创建测试表 CREATE TABLE `tb_heima` ( `id` INT NOT NULL, `username` VARCHAR(45) NULL, PRIMARY KEY (`id`) ); #插入测试数据 INSERT INTO `tb_heima` (`id`, `username`) VALUES (1, 传智教育-教育行业A股IPO第一股);2.死锁场景演示2.1. 打开一个dos窗口mysql -u账号 -p密码,进入mysql命令行输入:
看懂这篇文章,你就懂了数据库死锁产生的场景和解决方法
开启一个事务,mysql> begin;
看懂这篇文章,你就懂了数据库死锁产生的场景和解决方法
执行更新语句,mysql> update tb_heima set username = heima where id =1;
看懂这篇文章,你就懂了数据库死锁产生的场景和解决方法

注意:此时更新是成功的,但并未提交事务。

2.2.再打开一个dos窗口登录mysql,开启另一个事务操作同上。再次执行更新语句,mysql> update tb_heima set username = heima where id =1;
看懂这篇文章,你就懂了数据库死锁产生的场景和解决方法

注意:此时第二个窗口处于等待中,需要等待第一个窗口释放写锁才能执行成功。

等待一段时候后,第二个窗口报错了
看懂这篇文章,你就懂了数据库死锁产生的场景和解决方法

注意:由于第一个窗口未提交事务,导致第二个窗口在等待一段时候后,超过锁定等待超时。

三、解决死锁问题

通过mysql客户端工具连接,按照以下步骤执行。

select * from information_schema.innodb_lock_waits; #锁等待的信息,可以看到堵塞和被堵塞者
看懂这篇文章,你就懂了数据库死锁产生的场景和解决方法

注意:超过锁定等待超时后,此条记录会消失,也就是说正在阻塞的记录在此表才能查看到。

select * from information_schema.innodb_trx; # 查询锁事务状态信息
看懂这篇文章,你就懂了数据库死锁产生的场景和解决方法

注意:查询出死锁后,得到trx_mysql_thread_id死锁的id。

kill sessionId; # 杀掉有问题的sessionkill 15; kill 16;再次执行select * from information_schema.innodb_trx; # 查询锁事务状态信息
看懂这篇文章,你就懂了数据库死锁产生的场景和解决方法

注意:确认此表是否存在锁事务记录,如果没有则说明死锁问题已经解决。

四、如何避免死锁对于数据库的多表操作时,尽量按照相同的顺序进行处理,尽量避免同时锁定两个资源,如操作A和B两张表时,总是按先A后B的顺序处理, 必须同时锁定两个资源时,要保证在任何时刻都应该按照相同的顺序来锁定资源。所有的update和delete操作必须走唯一索引SQL语句中不要使用太复杂的关联多表的查询;使用“执行计划”对SQL语句进行分析,对于有全表扫描的SQL语句,建立相应的索引进行优化。把SELECT放在Update语句前避免事务中的用户等待交互

免责声明:文章内容来自互联网,本站仅作为分享,不对其真实性负责,如有侵权等情况,请与本站联系删除。
转载请注明出处:看懂这篇文章,你就懂了数据库死锁产生的场景和解决方法 https://www.dachanpin.com/a/cyfx/11417.html

(0)
上一篇 2023-05-12 03:17:30
下一篇 2023-05-12 03:18:32

相关推荐

  • 【创新创业季专题报道】周峰:创业成败否,唯有创业质素不可辜负

    创业成功与否,都应具备或者说习得一些基本的创业质素,这既是应该掌握的商业基本功,也是受益终身的个人能力。 2、构建优势,塑造优势变现的能力 “诚实不是诚信,诚信重商业承诺,诚实则是要求创业者对消费者、对自己、对竞争对手能够坦诚、客观、真实地去了解、洞察需求、发现特征、诚实对待,而不是一切想当然。” 商业就是价值交换。“无论一个人、一个产品、一个品牌抑或是一个…

    2023-05-18
    8500
  • 分析师支招:中国智能手机如何成功进入美国市场

      Counterpoint研究总监杰夫?菲尔德克(Jeff Fieldhack)表示,中国原始设备制造商(OEM)在全球手机市场拥有超过43%的份额,而在美国只占18%。据一份报告称,中兴和阿尔卡特已经跻身美国运营商销量的前五名,因为他们在预付费渠道有坚实的客户基础。   中国智能手机在印度、俄罗斯甚至在非洲等地区的市场很受欢迎。然而,只有少数中国手机品牌…

    创业分享 2023-05-21
    5400
  • 浙江民宿超1.6万家 带动近10万农民创业就业

    由浙江省旅游局编写的《浙江民宿蓝皮书2017》30日在杭州发布,蓝皮书显示,截至2017年底,浙江省民宿已达16233家,全省民宿总床位超过15万张,参与就业创业农民近10万人。 蓝皮书数据显示,2017年浙江省民宿经营前总投资192.6亿元,直接营业收入超过53.5亿元。其中,当地居民利用自有房屋进行自主经营的共14447家;专业投资机构或外来人员以租赁或…

    创业分享 2023-05-17
    6100
  • LOL刀妹重做符文怎么选择 2018刀妹暴力符文推荐

      刀妹需要攻速,一个突进型的英雄。   主精密+副主宰的打法,会是更好的符文搭配。   坚毅不倒-坚毅不倒让刀妹血量越少时伤害越高,配合W技能的减伤效果可以很容易反杀对手。   A5创业项目春季招商 好项目招代理无忧   LOL刀妹重做怎么选择?   LOL刀妹重做推荐:   传说欢欣-刀妹是一个技能中穿插普攻的英雄,出装也以半肉AD为主,因此需要更多攻速…

    创业分享 2023-05-19
    4600
  • 创业发展遇瓶颈怎么办?他们在一品威客网找到了出路

    在一品威客网厦门运营总部入口处,便有一面LED墙,上面都是平台全国任务方和需求方的实时数据统计及分析。而一品威客网作为平台方,为服务商与中小微企业雇主搭建起双边交易市场,通过整合各种专业技能的服务商并将之与全国市场所需的各种创意需求进行精准匹配,实现服务商与需求的无缝对接,帮助服务商实现创收创业创富。 “禾高网络”CEO董超 &#82…

    创业分享 2023-05-12
    10400

发表回复

登录后才能评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信