mysql 中的共享锁与排他锁

news2024/11/13 10:09:08

mysql 中的共享锁与排他锁

  • 1、共享锁(Shared Lock)
  • 2、排他锁(Exclusive Lock)


💖The Begin💖点点关注,收藏不迷路💖

在MySQL的InnoDB存储引擎中,锁是管理并发访问数据的关键机制。主要有两种类型的锁:共享锁和排他锁。

1、共享锁(Shared Lock)

  • 作用:允许多个事务同时读取同一数据,但不允许修改。
  • 使用场景:适用于读多写少的场景,保证数据一致性读。
  • 注意:可能导致死锁,尤其是在高并发环境下。
  • 命令:执行如下SQL语句时,会为查询结果集中的每一行数据加上共享锁。
SELECT ... LOCK IN SHARE MODE;

例子:

-- 使用共享锁读取库存信息(假设库存表名为products)
SELECT * FROM products WHERE product_id = 123 LOCK IN SHARE MODE;

2、排他锁(Exclusive Lock)

  • 作用:阻止其他事务读取或修改数据,直到锁被释放。
  • 使用场景:需要读取并更新同一数据时,确保数据一致性和完整性。
  • 注意
    • 仅适用于InnoDB,且必须在事务中。
    • 使用索引锁定行,避免表锁。
    • 会阻塞其他事务的读写操作。
  • 命令:执行如下SQL语句时,会为查询结果集中的每一行数据加上排他锁。
SELECT ... FOR UPDATE;

例子:

-- 使用排他锁读取用户余额(假设用户表名为users)  
SELECT balance FROM users WHERE user_id = 456 FOR UPDATE;

在这里插入图片描述


💖The End💖点点关注,收藏不迷路💖

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1990877.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Leetcode—328. 奇偶链表【中等】

2024每日刷题(153) Leetcode—328. 奇偶链表 实现代码 /*** Definition for singly-linked list.* struct ListNode {* int val;* ListNode *next;* ListNode() : val(0), next(nullptr) {}* ListNode(int x) : val(x), next(nullptr)…

入门岛3-Git 的使用与项目构建

任务概览 任务1: 破冰活动:自我介绍 任务2: 实践项目:构建个人项目 参考:git流程: csdn1 csdn2 任务1: 破冰活动:自我介绍 1.Git 是一种开源的分布式版本控制系统,广泛应用于软件开发领域,尤…

DPDI Online在线kettle调度工具

1. DPDI简介 DPDI Online 是一款基于Kettle的强大在线任务调度平台,凭借其高效与灵活性,专为调度和监控Kettle客户端生成的ETL任务而设计 2. DPDI使用 2.1 DPDI登录 2.2 DPDI核心功能 2.2.1 工作台 DPDI online首页主要是显示任务监控信息&#xff…

k8s 四种Service类型(ClusterIP、NodePort、LoadBalancer、ExternalName)详解

🐇明明跟你说过:个人主页 🏅个人专栏:《Kubernetes航线图:从船长到K8s掌舵者》 🏅 🔖行路有良友,便是天堂🔖 目录 一、引言 1、k8s概述 2、Service在Kubernetes中的…

细说盘点10种自动化拣货技术

导语 大家好,我是社长,老K。专注分享智能制造和智能仓储物流等内容。 在现代物流和仓储管理中,拣货技术的选择对于提高效率和降低成本至关重要。 本文将为您介绍10种流行的拣货技术,并分享它们的参数和应用场景,以帮助…

使用本地大模型从论文PDF中提取结构化信息

1 安装ollama 点击前往网站 https://ollama.com/ ,下载ollama软件,支持win、Mac、linux 2 下载LLM ollama软件目前支持多种大模型, 如阿里的(qwen、qwen2)、meta的(llama3、llama3.1), 读者根据自己电脑…

《加密与解密》读书笔记1

1、常用断点包括INT3断点、硬件断点、内存断点和消息断点。 1.1 INT断点:一个常用的断点,在OD和x64dbg中按F2快捷键来设置/取消断点。当执行一个INT3断点时,该地址处的内容就被调试器使用INT3指令替换掉了,此时OD和x64dbg将INT3隐…

flink1.18 编译遇到的问题

1. flink-runtime-web编译失败 源码编译时一直卡在 [INFO] Running ‘npm ci --cache-max0 --no-save’ in 处理方法&#xff1a; 修改flink-runtime-web/pom.xml文件 将<arguments>ci --cache-max0 --no-save ${npm.proxy}</arguments> 替换为&#xff1a;<a…

Delphi5实现鱼C记事本程序(TRichEdit版)

效果图 鱼C记事本程序 程序图标 Delphi5的程序图标需要ICO后缀名的文件&#xff0c;已经上传到CSDN&#xff0c;可以用一下。 有什么快捷生成ICO文件的方法&#xff0c;可以在评论区分享一下噢&#xff0c;谢谢&#xff01;&#xff01; MainMenu菜单组件 TRichEdit 组件 在…

多线程(2)——线程的六种状态

1. 线程的所有状态 进程状态&#xff1a; 就绪&#xff1a;正在 cpu 上执行&#xff0c;或者随时可以去 cpu 上执行 阻塞&#xff1a;暂时不能参与 cpu 执行 Java 的线程&#xff0c;对于状态做了更详细的区分&#xff0c;不仅仅是就绪和阻塞了&#xff0c;六种&#xff1a…

2024懒人精灵七天从入门到精通实战课程(付源码)

写在开始&#xff1a;对于想学习自动化技术的同学&#xff0c;给你们一些建议&#xff1b;如果你已经选择开始&#xff0c;还在坚持&#xff0c;我奉劝你坚持下去&#xff0c;水到渠成&#xff1b;如果你还没开始就选择放弃&#xff0c;我建议你就此放弃&#xff0c;老师也不鼓…

合宙Air780EP_LuatOS_MQTT应用指南

简介 Air780EP 是合宙的低功耗4G模组之一&#xff0c;支持LuatOS的脚本二次开发&#xff0c;即使是不太懂技术的老板&#xff0c;也能轻松使用 Air780EP开发产品。 本文应各位大佬邀请&#xff0c;详细讲解了Air780EP 的MQTT的应用教程&#xff01; MQTT协议具有长连接、低带宽…

开源AI智能名片商城系统:重塑大零售生态的创新实践与深度分析

摘要&#xff1a;在数字经济浪潮的推动下&#xff0c;零售行业正经历着前所未有的变革。传统零售模式面临消费者需求多样化、市场竞争加剧等多重挑战&#xff0c;而开源AI智能名片商城系统的出现&#xff0c;为零售行业的转型升级提供了新的思路和技术支持。本文深入探讨了开源…

C语言----字符串的匹配

字符串的匹配 实例说明&#xff1a; 本实例实现对两个字符串进行匹配操作&#xff0c;即在第一个字符串中查找是否存在第二个字符串。如果字符串完全匹配&#xff0c;则提示匹配的信息&#xff0c;并显示第二个字符串在第一个字符串中的开始位置&#xff0c;否则提示不匹配。 …

STM32 - 笔记

1 STM32的串口通信 【keysking的STM32教程】 第8集 STM32的串口通信_哔哩哔哩_bilibili 波特律动 串口助手

观成科技:海莲花活跃木马KSRAT加密通信分析

概述 自2023年8月至今&#xff0c;海莲花组织多次利用KSRAT远控木马对我国发起攻击。KSRAT通过HTTP协议与C&C服务器进行通信&#xff0c;每个样本都使用了不同的URL。其心跳包采用XOR算法进行加密&#xff0c;而控制指令包和数据回传包则使用了XOR以及“XORAES-128-CBC”组…

【C语言篇】递归详细介绍(基础概念习题及汉诺塔等进阶问题)

文章目录 递归是什么递归的思想递归的限制条件 递归举例求n的阶乘分析和代码实现画图推演 顺序打印一个整数的每一位分析和代码实现画图推演 递归与迭代递归求第n个斐波那契数迭代求第n个斐波那契数 拓展练习青蛙跳台阶问题递归求解迭代求解 汉诺塔问题 递归是什么 递归是学习…

FPGA使用sv生成虚拟单音数据

FPGA使用sv生成虚拟单音数据 之前一直使用matlab生成虚拟的数据&#xff0c;导出到txt或是coe文件中&#xff0c;再导入到fpga中进行仿真测试。 复杂的数据这样操作自然是必要的&#xff0c;但是平日使用正弦数据进行测试的话&#xff0c;这样的操作不免复杂&#xff0c;今日…

CentOS 安装Redis

在 CentOS 安装 Redis 操作系统&#xff1a;centos-7.9.2009-Core 1. 更新系统 首先&#xff0c;确保你的系统是最新的&#xff1a; sudo yum update -y2. 安装 EPEL 仓库 Redis 可能不在默认的 CentOS 仓库中&#xff0c;因此你需要安装 EPEL&#xff08;Extra Packages f…

【源码+文档+调试讲解】活力健身馆管理系统

摘 要 活力健身馆管理系统的目的是让使用者可以更方便的将人、设备和场景更立体的连接在一起。能让用户以更科幻的方式使用产品&#xff0c;体验高科技时代带给人们的方便&#xff0c;同时也能让用户体会到与以往常规产品不同的体验风格。 与安卓&#xff0c;iOS相比较起来&am…