MySQL死锁1
2024-09-06 19:56:51
MySQL行级排他锁的使用及死锁解除技巧
这篇笔记存粹是做学习记录之用,方便将来查阅,老鸟请跳过。关于MySQL排他锁的具体使用。
使用排他锁
假设有一张user表如下:
id | name | age |
---|---|---|
1 | 张成瑶 | 27 |
2 | 钟其林 | 24 |
打开navicat for mysql软件,先使用以下SQL,获取排他锁:
1 |
begin; #开启事务 |
运行这条语句,会发现正常执行。此时,新开一个查询窗口,再使用以下SQL再尝试获取排他锁:
1 |
select * from user where id = 1 for update; |
运行这条语句,会发现语句阻塞,一直处于查询状态。如果将之前那个查询窗口关闭,会发现这条SQL立即执行成功,因为关闭了窗口(没有提交的事务也随之关闭)。
解除死锁
万一并发环境下,由于事务出错没有提交成功,有可能造成死锁。此时,解除死锁的方法有一种是:将获取排他锁的SQL再运行一次,并确保同时执行了commit,只要执行成功,即可解除死锁。
最新文章
- scikit-learn使用笔记与sign prediction简单小结
- Tomcat在局域网中localhost可以访问,但是无法通过本地ip访问,127.0.0.1也无法访问问题的解决方法
- Android 启动APP时黑屏白屏的三个解决方案
- 自定义Spring event
- sql操作事务SqlTransHelper类实现
- Linux 的启动流程-阮一峰
- 《你不常用的c#之三》:Action 之怪状
- C# ToString格式大全
- Linux学习之Makefile文件的编写
- 用Html5结合Qt制作一款本地化EXE游戏-太空大战(Space War)
- C#开发157
- websocket 项目应用
- Python生产环境部署(fastcgi,uwsgi)
- Java实现Windows平台下Ping的最佳方法
- Tsung:开源多协议分布式负载&;压力测试工具
- codeforces-2
- 解决Win10 PowerShell无法激活Anaconda环境的问题
- 【Jmeter】Address already in use : connect &;&;Permission denied: connect 解决方案
- 《JavaScript Dom 编程艺术》读书笔记-第8章
- 解决C#调用执行js报检索 COM 类工厂中 CLSID 为 {0E59F1D5-1FBE-11D0-8FF2-00A0D10038BC} 组件失败