当前位置: 首页 > news >正文

MySQL—死锁

什么是死锁?

好比是两个事务都在等待对方释放锁,之后进行下一步操作,但是最后双方都没有释放资源,所以导致一直处于等待的状态。

但是服务器不会让死锁的状态一直持续,会关闭其中一个影响较小的事务(右边的事务关闭),

参考链接:死锁面试题(什么是死锁,产生死锁的原因及必要条件)-CSDN博客

怎么查看有没有发生死锁呢?

查询是否锁表

show OPEN TABLES where In_use > 0;

查看当前的事务

SELECT * FROM INFORMATION_SCHEMA.INNODB_TRX;

查看当前锁定的事务

SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCKS;

查看当前等锁的事务

ELECT * FROM INFORMATION_SCHEMA.INNODB_LOCK_WAITS;

减少死锁:

  1. 使用事务,不使用 lock tables 。
  2. 保证没有长事务。
  3. 尽量基于primary或unique key更新数据
  4. 操作完之后立即提交事务,特别是在交互式命令行中。
  5. 如果在用 (SELECT ... FOR UPDATE or SELECT ... LOCK IN SHARE MODE),尝试降低隔离级别。注意:select ... for update (表级锁)、select ... lock in share mode(行级锁)
  6. 修改多个表或者多个行的时候,将修改的顺序保持一致。
  7. 创建索引,可以使创建的锁更少。
  8. 最好不要用 (SELECT ... FOR UPDATE or SELECT ... LOCK IN SHARE MODE)。
  9. 如果上述都无法解决问题,那么尝试使用 lock tables t1, t2, t3 锁多张表
  10. 使用乐观锁和减少锁的粒度,保证一致的锁定顺序,合计设计索引,避免大事务。
  11. 等待超时时,回滚事务或者结束进程。

MySQL死锁的解决方案

彻底搞懂MySQL死锁_mysql deadlock-CSDN博客

面试必问!MySQL死锁是什么,如何解决?史上最全!-CSDN博客

彻底搞懂MySQL死锁_mysql deadlock-CSDN博客

mysql查看死锁和解除锁_查mysql死锁-CSDN博客

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 内网穿透的应用-本地化部署Elasticsearch平替工具OpenObserve并实现无公网IP远程分析数据
  • xilinx通用RAM或者FIFO设计
  • 直播相关01-录制麦克风声音,QT上 .pro 将 linux,mac和windows上配置为三种可以共享,
  • 【阿雄不会写代码】全国职业院校技能大赛GZ036第九套
  • 前端开发的单例设计模式
  • 内网穿透的应用-Deepin系统安装x11vnc实现任意设备无公网IP远程连接Deepin桌面
  • ITK-高斯滤波
  • 【数据结构与算法】——学习笔记
  • liunx io模型多路复用
  • 2024年【甘肃省安全员C证】报名考试及甘肃省安全员C证考试总结
  • MyBatis详解
  • ios签名怎么找靠谱的服务商
  • 睿考网:中级经济师考试题型有哪些?
  • 小米嵌入式面试题目RTOS面试题目 嵌入式面试题目
  • 【QT Creator】基本使用
  • 77. Combinations
  • Angular数据绑定机制
  • Java知识点总结(JDBC-连接步骤及CRUD)
  • Linux学习笔记6-使用fdisk进行磁盘管理
  • Nginx 通过 Lua + Redis 实现动态封禁 IP
  • Object.assign方法不能实现深复制
  • 利用DataURL技术在网页上显示图片
  • 聊聊flink的TableFactory
  • 马上搞懂 GeoJSON
  • 三栏布局总结
  • 试着探索高并发下的系统架构面貌
  • 学习笔记TF060:图像语音结合,看图说话
  • d²y/dx²; 偏导数问题 请问f1 f2是什么意思
  • Java总结 - String - 这篇请使劲喷我
  • mysql面试题分组并合并列
  • ​Python 3 新特性:类型注解
  • $emit传递多个参数_PPC和MIPS指令集下二进制代码中函数参数个数的识别方法
  • (2024,Vision-LSTM,ViL,xLSTM,ViT,ViM,双向扫描)xLSTM 作为通用视觉骨干
  • (备忘)Java Map 遍历
  • (一)80c52学习之旅-起始篇
  • (一)Java算法:二分查找
  • (原創) 是否该学PetShop将Model和BLL分开? (.NET) (N-Tier) (PetShop) (OO)
  • (转)GCC在C语言中内嵌汇编 asm __volatile__
  • (转)Windows2003安全设置/维护
  • ***linux下安装xampp,XAMPP目录结构(阿里云安装xampp)
  • ./indexer: error while loading shared libraries: libmysqlclient.so.18: cannot open shared object fil
  • .bat批处理(十一):替换字符串中包含百分号%的子串
  • .Net 6.0--通用帮助类--FileHelper
  • .NET 8.0 发布到 IIS
  • .NET Core中Emit的使用
  • .NET Remoting学习笔记(三)信道
  • .Net转前端开发-启航篇,如何定制博客园主题
  • /var/log/cvslog 太大
  • [3D游戏开发实践] Cocos Cyberpunk 源码解读-高中低端机性能适配策略
  • [AHOI2009]中国象棋 DP,递推,组合数
  • [C#]winform部署yolov9的onnx模型
  • [C][数据结构][树]详细讲解
  • [C++初阶]string类的详解
  • [codevs 1296] 营业额统计
  • [CSDN首发]鱿鱼游戏的具体玩法详细介绍