当前位置:网站首页>select......for update 语句的功能是什么? 会锁表还是锁行?
select......for update 语句的功能是什么? 会锁表还是锁行?
2022-08-03 17:41:00 【一天不写程序难受】
目录
1 语句意思
在项目代码里,看到
select * from xxl_job_lock where lock_name = 'schedule_lock' for update
以上的代码的意思是什么
select查询语句是不会加锁的,但是select …for update除了有查询的作用外,还会加锁呢,而且它是悲观锁。
那么它加的是行锁还是表锁,这就要看是不是用了索引/主键。
没用索引/主键的话就是表锁,否则就是是行锁。
2 思路
新建一个表,我们使用xxl-job 里面的表
他的这个表,这个字段是主键
我们首先是关闭自动提交 需要关闭自动提交,通过set @@autocommit=0; 设置为手动提交。0代表手动提交,1代表自动提交。 必须先关闭,不然语句一执行,就提交了,我们看不出我们要的结果
关闭之后,执行语句
select * from xxl_job_lock where lock_name = 'schedule_lock' for update
以上查询语句的意思是,不仅仅要查询,还要对这个sql语句进行加锁;一加锁之后,其他的线程要操作这个表,就被卡住了,要等到这个sql语句执行完成,其他线程对这个表的操作,才会执行,不然一直等,这样就实现了排它锁
我们就可以使用采用 select for update ,是排它锁。说白了 xxl-job 用一张数据库表来当分布式锁了,确保多个 xxl-job admin 节点下,依旧只能同时执行一个调度线程任务
多线程下,对同一个数据库操作,我们就可以在这个数据库
单独创建一个表,这个表当做分布式锁就可以了
边栏推荐
- 沃尔沃:这是会“种草”的“安全感”!
- LyScript 内存交换与差异对比
- WPF 实现柱形统计图
- 融云「音视频架构实践」技术专场【内含完整PPT】
- 303. Range Sum Query - Immutable
- 并查集模板及思想
- 【技术白皮书】第一章:OCR智能文字识别新发展——深度学习的文本信息抽取
- 被误解的 MVC 和被神化的 MVVM(二)
- 酷开科技 × StarRocks:统一 OLAP 分析引擎,全面打造数字化的 OTT 模式
- China Hashpower Conference Ascension Kunpeng Ecological Forum was held; Kuaishou established an independent to B business department…
猜你喜欢
图像传感第一章学习心得
CC2530_ZigBee+华为云IOT:设计一套属于自己的冷链采集系统
ASP.NET Core依赖注入之旅:3.Service Locator和依赖注入
全尺度表示的上下文非局部对齐,南科大&优图提出NAFS解决基于文本的Re ID
A complete detailed tutorial on building intranet penetration ngrok (with pictures and truth)
完整的搭建内网穿透ngrok详细教程(有图有真相)
mysql之数据库账户管理与优化
JS 字符串转 GBK 编码超精简实现
leetcode-每日一题899. 有序队列(思维题)
WPF 实现柱形统计图
随机推荐
【Metaverse系列一】元宇宙的奥秘
LyScript 内存交换与差异对比
茅台日赚1.65亿,经销商日子却越来越难
图像质量指标:PSNR、SSIM、MSE
383. Ransom Note
es6新增-Generator(异步编程的解决方案2)
大型企业数据治理的现状和解决方案有哪些参考?_光点科技
PMP考试通关宝典-敏捷专题
一键进入华为云会议,长期免费值得所有开发团队有一套【华为云至简致远】
分享 14 个你必须知道的 JS 函数
es6新增-Promise详解(异步编程的解决方案1)
云GPU如何安装和启动VNC远程桌面服务?
ICDAR competition technology sharing
出海,是泡泡玛特的“解药”吗?
六、用户身份认证
【指针初解】
【技术白皮书】第二章:OCR智能文字识别回顾——自然语言文本发展历程
003_Kubernetes核心技术
工程仪器设备在线监测管理系统常见问题和注意事项
PMP试题 | 每日一练,快速提分