Mysql并发DML锁等待的优化
1、概述​ 在Mysql数据库中慢SQL、长事务、没执行commit的DML操作都有可能导致并发会话的阻塞还可能发生锁等待报错。那么这一类的报错应该如何优化呢通常有三种方案可以考虑1优化SQL性能SQL执行快了阻塞时间自然就短了2使用合适的索引缩小数据上锁范围3调高锁等待超时时间参数。本文主要介绍第2种方案下面我们来看看实验效果2、实验场景1不使用索引在没有索引和主键的表上做update和delete操作锁定的是表中所有数据无论sql中是否含有过滤条件。先准备测试数据create table tb_test_lock1(id int ,c1 varchar(10)); insert into tb_test_lock1 values(1,aaa); insert into tb_test_lock1 values(2,bbb); insert into tb_test_lock1 values(3,ccc); insert into tb_test_lock1 values(4,ddd); insert into tb_test_lock1 values(5,eee); commit;在会话1中修改id1的数据不提交如下图。在这个会话中修改Id1的记录由于没有索引使用的是全部扫描的方式检索数据事务结束前会锁定整表数据而不是只锁定Id1的1条数据。#会话1 start transaction; update tb_test_lock1 set c1a1 where id1;与此同时在会话2中修改id5的数据可以看到因为会话1锁定了整表数据修改id5的sql被阻塞在超时后触发报错。#会话2 update tb_test_lock1 set c1e5 where id5;场景2创建索引缩小锁范围合适的索引能够缩小锁的范围减少并发锁冲突create index idx_id on tb_test_lock1(id);在会话1中修改id1的数据不提交如下图。#会话1 start transaction; update tb_test_lock1 set c1a1 where id1;与此同时在会话2中修改id5的数据如下图。我们看到会话2执行成功了这表明会话1并没有阻塞会话2。这是因为我们创建了索引idx_id会话1按索引idx_id检索数据数据上锁的范围变小了只锁定Id1的记录。而会话2请求的是Id5的记录锁2者不冲突。#会话2 update tb_test_lock1 set c1e5 where id5;实验表明创建合适的索引并使用索引字段做检索条件可以有效解决并发会话阻塞问题避免锁等待报错。​DLM 2026.7.21

相关新闻

国内首批!中关村科金通过中国信通院生成式引擎优化能力完备性专项测评

国内首批!中关村科金通过中国信通院生成式引擎优化能力完备性专项测评

2026年7月10日,中国信息通信研究院在北京举办“GEO价值交付与场景应用创新研讨会”,正式发布国内首批生成式引擎优化(GEO)能力完备性专项测评结果。凭借领先的AI原生技术能力、完善的安全合规体系及成熟的得助GEO产品能力&#xf…

2026/7/22 22:40:01阅读更多 →
劲浪ES165KE黄盆两分频怎么搭配功放?弗莱德FH-4与欧迪臣SR 4.500参数对比

劲浪ES165KE黄盆两分频怎么搭配功放?弗莱德FH-4与欧迪臣SR 4.500参数对比

在汽车音响升级中,扬声器和功放之间的关系不能只看额定功率。以劲浪 FOCAL ES165KE 黄盆中低音为例,它的阻抗、额定功率、灵敏度和安装条件,都会影响功放的选择。本文把弗莱德 FREUDE FH-4与欧迪臣 AUDISON SR 4.500放在同一组参数里比较&…

2026/7/22 22:40:01阅读更多 →
HarmonyOS 鸿蒙 PC平台 Python 三方库移植实战完整教案

HarmonyOS 鸿蒙 PC平台 Python 三方库移植实战完整教案

更多教程示例:猫哥的博客,鸿蒙PC专栏:https://blog.csdn.net/yyz_1987/category_13085729.html 课程基础信息 课程名称:HarmonyOS 鸿蒙 PC Python/C/Rust 扩展三方库移植实战 适用人群:鸿蒙 PC 开发者、Python 后端开发者、嵌入式…

2026/7/22 22:40:01阅读更多 →
AndroidNavigation性能调优:避免常见陷阱的7个关键点

AndroidNavigation性能调优:避免常见陷阱的7个关键点

AndroidNavigation性能调优:避免常见陷阱的7个关键点 【免费下载链接】AndroidNavigation A library managing navigation, nested Fragment, StatusBar, Toolbar for Android 项目地址: https://gitcode.com/gh_mirrors/an/AndroidNavigation AndroidNaviga…

2026/7/22 23:28:24阅读更多 →
AndroidNavigation在大型项目中的应用:架构设计与模块化实践

AndroidNavigation在大型项目中的应用:架构设计与模块化实践

AndroidNavigation在大型项目中的应用:架构设计与模块化实践 【免费下载链接】AndroidNavigation A library managing navigation, nested Fragment, StatusBar, Toolbar for Android 项目地址: https://gitcode.com/gh_mirrors/an/AndroidNavigation Androi…

2026/7/22 23:28:24阅读更多 →
树莓派部署BirdNET-Go常见问题解答:从硬件要求到性能优化

树莓派部署BirdNET-Go常见问题解答:从硬件要求到性能优化

树莓派部署BirdNET-Go常见问题解答:从硬件要求到性能优化 【免费下载链接】birdnet-go Self-hosted realtime soundscape analyser for birds, bats and other wildlife. Multi-model local AI inference, runs 24/7 on a Raspberry Pi. 项目地址: https://gitcod…

2026/7/22 23:28:24阅读更多 →
gh_mirrors/log/logback授权控制详解:基于角色与权限的访问管理

gh_mirrors/log/logback授权控制详解:基于角色与权限的访问管理

gh_mirrors/log/logback授权控制详解:基于角色与权限的访问管理 【免费下载链接】logback 💡 SpringBootSpring Security基本配置 项目地址: https://gitcode.com/gh_mirrors/log/logback gh_mirrors/log/logback是一个基于SpringBootSpring Secu…

2026/7/22 23:28:24阅读更多 →
终极指南:OpenSpeedy如何通过Ring3 Hook技术实现游戏时间函数拦截与帧率控制优化

终极指南:OpenSpeedy如何通过Ring3 Hook技术实现游戏时间函数拦截与帧率控制优化

终极指南:OpenSpeedy如何通过Ring3 Hook技术实现游戏时间函数拦截与帧率控制优化 【免费下载链接】OpenSpeedy 🎮 An open-source game speed modifier. 项目地址: https://gitcode.com/gh_mirrors/op/OpenSpeedy OpenSpeedy是一款基于Ring3级别H…

2026/7/22 23:28:24阅读更多 →
做公司PPT最烦的不是写内容,是套模板

做公司PPT最烦的不是写内容,是套模板

近两年来,利用AI生成PPT这样的事情普及开来的速度还是比较快的。输入那么一小段需求,几十秒钟就能够弄出那么一份结构比较完整的PPT,内容方面的逻辑还算可以,排版也勉强说得过去 。 但问题出在拿到之后,许多公司皆拥有…

2026/7/22 23:26:24阅读更多 →
Go语言静态资源打包方案对比与实践指南

Go语言静态资源打包方案对比与实践指南

1. 项目背景与核心需求在Go语言开发中,我们经常需要处理静态资源文件的打包问题。无论是Web应用的模板文件、前端资源,还是配置文件、证书等,都需要随程序一起分发。传统做法是将这些文件与编译后的二进制文件放在同一目录下,但这…

2026/7/22 0:53:59阅读更多 →
Go语言实现高性能LDAP认证服务的架构与实践

Go语言实现高性能LDAP认证服务的架构与实践

1. 项目背景与核心价值LDAP(轻量级目录访问协议)作为企业级身份认证的黄金标准,已经服务了超过80%的财富500强公司。我在金融科技领域实施统一认证体系时,发现传统Java方案存在启动慢、内存占用高等痛点。而Go语言凭借其协程并发模…

2026/7/22 0:53:59阅读更多 →
【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

更多请点击: https://intelliparadigm.com 第一章:AI面试官实战指南的核心价值与适用场景 AI面试官并非替代人类HR的“黑箱工具”,而是以可解释、可审计、可迭代的方式,赋能招聘全链路的关键基础设施。其核心价值在于将主观经验沉…

2026/7/22 0:53:59阅读更多 →
中小企业小程序开发公司怎么选:预算、上手和售后避坑指南

中小企业小程序开发公司怎么选:预算、上手和售后避坑指南

中小企业做小程序,最常见的矛盾是预算有限,但又不希望功能太单薄;没有技术团队,但又希望后续能自己运营;想快速上线,又担心隐性收费和售后失联。选型时如果只看“低价套餐”或“案例数量”,很容…

2026/7/22 0:01:17阅读更多 →
GEO优化如何沉淀长期内容资产?广拓时代谈AI搜索时代的内容ROI

GEO优化如何沉淀长期内容资产?广拓时代谈AI搜索时代的内容ROI

企业做营销,最怕钱花完了,资产没有留下。 效果广告能带来一段时间的曝光,但预算停止后,流量往往也随之停止。短视频内容可能在几天内冲高,也可能很快沉下去。AI搜索时代,企业需要重新思考一个问题&#xff…

2026/7/22 0:01:17阅读更多 →
Agent 终态判定:何时该停止思考、给出最终回复

Agent 终态判定:何时该停止思考、给出最终回复

Agent 终态判定:何时该停止思考、给出最终回复 一、你的 Agent 在"再想想"的循环里绕了 12 轮,用户已经关窗口了 Agent 与人最大的区别是:人知道什么时候该停下来给答案,Agent 会一直"想"下去。你给 Agent 接…

2026/7/22 0:01:17阅读更多 →
YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

如果你在部署 YOLOv8 时,发现推理速度只有可怜的 1-2 FPS,而别人的演示视频却能跑到 30 FPS 以上,那么问题很可能不在模型本身,而在于你的整个处理链路。很多开发者拿到一个训练好的 YOLOv8 模型后,会直接使用官方示例…

2026/7/22 22:56:18阅读更多 →
Coze与Dify对比指南:低代码AI应用开发从入门到实战

Coze与Dify对比指南:低代码AI应用开发从入门到实战

1. 从零到一:为什么你需要了解 Coze 和 Dify?如果你对 AI 应用开发感兴趣,但一看到“大模型”、“智能体”、“工作流”这些词就头疼,觉得门槛太高,那这篇文章就是为你准备的。很多开发者,包括我自己&#…

2026/7/22 18:55:50阅读更多 →
AI生图工具怎么选?2026年6月版实测对比

AI生图工具怎么选?2026年6月版实测对比

做自媒体的朋友应该都有体会:配图一直是个让人头疼的问题。2026年,AI生图工具已经非常成熟了,但工具太多反而不知道怎么选。以下是截至2026年6月我对主流AI生图工具的实测对比。Midjourney V8.1:速度之王2026年6月11日&#xff0c…

2026/7/22 18:55:50阅读更多 →