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

数据库锁机制:表锁、行锁(Oracle 默认)、共享锁、排他锁、乐观锁、悲观锁、死锁、Hive 中的锁

数据库锁机制是控制并发访问数据的关键技术。本文系统介绍了锁的概念、分类和应用场景1锁通过限制并发访问确保数据一致性类比厕所门锁机制2按粒度分为表锁适合批量操作、行锁适合高并发和页锁3按模式分为共享锁读锁、排他锁写锁和意向锁4对比了悲观锁先加锁和乐观锁后检查的实现差异5分析了死锁成因及解决方案6特别说明Hive采用表锁的设计考量。不同数据库根据应用场景选择适合的锁机制如OLTP系统多用行锁数据仓库倾向表锁。数据库锁机制详解一、什么是锁一句话理解锁就是控制多人同时访问同一数据的机制。生活类比text公共厕所 - 有人进去了 → 锁上门加锁 - 其他人 → 只能等待阻塞 - 里面的人出来 → 打开锁释放锁 - 下一个人 → 才能进去 如果不锁门两个人同时进去...尴尬二、为什么需要锁问题场景假设银行账户余额 1000 元时间操作A取钱500操作B取钱800结果10:00:00读取余额100010:00:01读取余额100010:00:02计算 1000-50050010:00:03计算 1000-80020010:00:04写入余额50010:00:05写入余额20010:00:06❌ 最终余额200多取了300没有锁两个操作互相干扰数据错误有锁text操作A读取余额 → 加锁 → 处理 → 写回 → 释放锁 ↓ 操作B等待...等待...等待... → 读取新余额 → 处理 → 写回三、锁的分类3.1 按粒度分类锁粒度锁的范围并发度开销适用场景表锁整张表低小全表操作如 ALTER TABLE行锁某一行高大OLTP 系统如银行、电商页锁某一页数据中等中等某些数据库如 SQL Server3.2 按模式分类锁模式英文符号含义共享锁Shared LockS读锁多个事务可同时读不能写排他锁Exclusive LockX写锁只能一个事务读写其他不能意向锁Intention LockIS/IX表示准备加更细的锁提高效率3.3 兼容性矩阵共享锁S排他锁X共享锁S✅ 兼容可同时读❌ 不兼容排他锁X❌ 不兼容❌ 不兼容四、行锁 vs 表锁 详解4.1 表锁sql-- MySQL LOCK TABLES emp READ; -- 加表锁共享锁 SELECT * FROM emp; -- 可以读 UPDATE emp SET sal5000; -- ❌ 不能写会阻塞 UNLOCK TABLES; -- 解锁特点锁定整张表简单粗暴适合批量操作数据仓库、ETLHive 主要使用表锁4.2 行锁sql-- MySQL InnoDB BEGIN; SELECT * FROM emp WHERE empno7369 FOR UPDATE; -- 只锁这一行 UPDATE emp SET sal5000 WHERE empno7369; COMMIT; -- 释放锁特点只锁影响的行其他行不受影响适合高并发 OLTP银行、电商Oracle/MySQL InnoDB 默认使用行锁五、乐观锁 vs 悲观锁这是思想层面的分类不是具体的锁实现。类型思想做法适用场景悲观锁肯定有人跟我抢先加锁再操作并发高的场景乐观锁应该没人跟我抢先操作提交时检查并发低的场景5.1 悲观锁示例sql-- MySQL 悲观锁 BEGIN; SELECT * FROM products WHERE id1 FOR UPDATE; -- 加锁 UPDATE products SET stockstock-1 WHERE id1; COMMIT; -- 释放锁5.2 乐观锁示例sql-- 用版本号实现乐观锁 -- 1. 读取数据 版本号 SELECT stock, version FROM products WHERE id1; -- stock10, version5 -- 2. 更新时检查版本号 UPDATE products SET stock9, version6 WHERE id1 AND version5; -- 版本号匹配才更新 -- 3. 如果更新行数0说明被别人改过重试六、死锁6.1 什么是死锁两个事务互相等待对方释放锁谁也动不了。text事务A锁住了行1等待行2 事务B锁住了行2等待行1 结果两个都卡死6.2 死锁示例sql-- 事务A BEGIN; UPDATE accounts SET balancebalance-100 WHERE id1; -- 锁住行1 UPDATE accounts SET balancebalance100 WHERE id2; -- 等待行2 -- 事务B同时执行 BEGIN; UPDATE accounts SET balancebalance-50 WHERE id2; -- 锁住行2 UPDATE accounts SET balancebalance50 WHERE id1; -- 等待行1 -- 死锁两个事务互相等待6.3 如何避免死锁方法说明固定访问顺序总是先更新 id 小的再更新 id 大的减少事务时间尽快 COMMIT不要有用户交互使用超时设置锁等待超时超时后自动放弃死锁检测数据库自动检测杀掉其中一个事务七、Hive 中的锁7.1 Hive 锁的特点特点说明表级锁Hive 主要使用表锁不支持行锁共享锁S读取表时加多个读操作可并发排他锁X写入表时加阻塞其他读写自动加锁执行 SQL 时自动加不需要手动7.2 Hive 锁示例sql-- 读操作 → 加共享锁 SELECT * FROM emp; -- 自动加共享锁允许其他读禁止写 -- 写操作 → 加排他锁 INSERT INTO emp VALUES(9999,张三,CLERK,...); -- 自动加排他锁阻塞其他操作 -- 查看锁 SHOW LOCKS; -- 手动解锁某些情况需要 UNLOCK TABLE emp;7.3 为什么 Hive 用表锁原因说明设计定位数据仓库不是高并发 OLTP批量操作每次处理大量数据行锁意义不大简单可靠表锁简单死锁概率低HDFS 特性HDFS 不支持行级修改八、课堂笔记相关理解你的课堂笔记中提到小文件过多导致跑批任务慢这与锁的关系阶段锁情况说明读取阶段共享锁多个任务可以同时读写入阶段排他锁写任务会阻塞其他操作合并文件排他锁小文件合并时需要独占表导致其他任务等待九、各数据库锁机制对比数据库默认锁粒度支持行锁死锁检测适用场景MySQLInnoDB行锁✅✅OLTP高并发MySQLMyISAM表锁❌❌只读/低并发Oracle行锁✅✅OLTPPostgreSQL行锁✅✅OLTPHive表锁❌❌数据仓库HBase行锁✅✅实时读写十、总结问题答案锁是什么控制多人同时访问同一数据的机制为什么需要锁防止数据不一致如银行取钱行锁 vs 表锁行锁并发高表锁简单共享锁 vs 排他锁共享锁可同时读排他锁独占乐观锁 vs 悲观锁乐观锁假设没人抢悲观锁假设有人抢死锁两个事务互相等待对方释放锁Hive 用什么锁主要用表锁共享锁/排他锁一句话记忆锁就像厕所门锁进去就锁上别人得等出来再打开下一个才能进。目的就是防止两个人同时用同一个数据搞乱账。

相关文章:

数据库锁机制:表锁、行锁(Oracle 默认)、共享锁、排他锁、乐观锁、悲观锁、死锁、Hive 中的锁

数据库锁机制是控制并发访问数据的关键技术。本文系统介绍了锁的概念、分类和应用场景:1)锁通过限制并发访问确保数据一致性,类比厕所门锁机制;2)按粒度分为表锁(适合批量操作)、行锁&#xff0…...

GEO学习能帮我提高AI搜索排名吗?

先直接回答这个问题:GEO不叫"排名",但效果比排名更直接。如果你理解了这句话,你就理解了GEO和SEO的本质区别。AI搜索没有"排名",只有"引用"传统SEO优化的目标是在搜索结果页面占据靠前位置——第几…...

CANN Rotary Embedding 融合算子:解锁千问大模型推理性能的 3 倍密钥

CANN Rotary Embedding 融合算子:解锁千问大模型推理性能的 3 倍密钥 导语:在大模型推理的“微操”中,位置编码(Positional Encoding)往往被视为理所当然的开销。然而,在昇腾(Ascend&#xff0…...

DeepSeek V2安全对齐能力深度拆解(含对抗攻击测试报告+合规审计清单)

更多请点击: https://codechina.net 第一章:DeepSeek V2安全对齐能力深度拆解(含对抗攻击测试报告合规审计清单) DeepSeek V2 在设计阶段即嵌入多层安全对齐机制,涵盖输入过滤、策略蒸馏、响应重加权与后验校验四大核…...

Agent 场景落地:从概念演示到真实服务

当下 Agent 概念火热,但多数仍停留在实验室演示、概念展示阶段:发布会效果惊艳,却难以真正走进银行、门店、家庭等真实服务场景,解决实际问题。 行业共识逐渐清晰:Agent 的价值不在酷炫演示,而在真实场景里…...

Veo生成模糊/断帧/色偏?立刻停用默认设置!20年视频架构师紧急发布的5项必改Veo 2K/4K硬核配置

更多请点击: https://intelliparadigm.com 第一章:Veo 2K/4K视频生成质量崩塌的根源诊断 当Veo模型在2K或4K分辨率下输出视频时,高频细节严重丢失、运动伪影显著增强、纹理结构模糊化,这一现象并非单纯算力不足所致,而…...

如何为你的推特内容创作工具配置Taotoken大模型API

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 如何为你的推特内容创作工具配置Taotoken大模型API 假设你是一名社交媒体运营者,正在使用或开发一个自动生成推特文案的…...

终极免费方案:5分钟破解Cursor AI试用限制,永久享受Pro功能

终极免费方案:5分钟破解Cursor AI试用限制,永久享受Pro功能 【免费下载链接】cursor-free-vip [Support 0.45](Multi Language 多语言)自动注册 Cursor Ai ,自动重置机器ID , 免费升级使用Pro 功能: Youve …...

【ChatGPT SEO写作黄金法则】:20年SEO专家亲授7大不可绕过的AI内容合规红线

更多请点击: https://kaifayun.com 第一章:ChatGPT SEO写作的底层逻辑与合规本质 ChatGPT SEO写作并非简单地将关键词堆砌进AI生成文本,其底层逻辑建立在三重耦合关系之上:搜索引擎语义理解机制、用户真实搜索意图建模&#xff0…...

NotebookLM效应量计算合规性危机:FDA/EMA/NMPA最新AI辅助研究指南对效应量报告的强制性要求(附自查清单V2.3)

更多请点击: https://intelliparadigm.com 第一章:NotebookLM效应量计算合规性危机的定义与背景 NotebookLM 效应量计算合规性危机,是指当研究者在使用 Google NotebookLM(一款基于 LLM 的文档理解与推理工具)辅助开展…...

React 从入门到生产(五):状态管理选型

创作者: Yardon | GitHub: github.com/YardonYan | 版本: v1.0 什么时候需要状态管理 先泼一盆冷水:大多数 React 应用不需要 Redux。 这句话不是我说的,是 Redux 的作者 Dan Abramov 本人说的。他在 2020 年就公…...

哪个工具能降重降AI?亲测知网维普aigc检测效果,重复率和ai率不到10%!

2025 年 12 月 25 日知网 AIGC 检测系统升级,2026 年 4 月 27 日维普 AI 率检测平台升级…2026 毕业季,各大主流 AIGC 检测软件陆续升级系统,识别 AI 痕迹更加精准。 临近毕业,同学们看者飘红的 AIGC 检测报告、纷繁复杂的降 AI 系…...

Ender-3固件配置终极指南:从新手到高手的完整教程

Ender-3固件配置终极指南:从新手到高手的完整教程 【免费下载链接】Ender-3 The Creality3D Ender-3, a fully Open Source 3D printer perfect for new users on a budget. 项目地址: https://gitcode.com/gh_mirrors/en/Ender-3 Ender-3 3D打印机是一款广受…...

Git从入门到工作流:GitLab私有仓库最佳实践(SSH免密、.DS_Store全局忽略)

本文将带你从零开始配置GitLab私有仓库,涵盖SSH密钥免密登录、本地仓库初始化与推送、以及macOS下.DS_Store文件的全局忽略与清理。每一步都有命令和解释,适合新手和想规范Git工作流的开发者。 一、注册GitLab账号并创建私有仓库 1. 注册账号 访问 Git…...

2026 AI 培训机构怎么选?6 类人群精准匹配 + 避坑指南

随着大模型、多模态、RAG、Agent 技术持续迭代,企业对于 AI 算法开发、计算机视觉、自然语言处理、工程落地类人才的需求持续上涨。目前国内主流AI学习平台包含咕泡科技、科大讯飞AI大学堂、腾讯云智学堂、深兰科技人工智能教育等,各家平台技术侧重点、课…...

MultiHighlight智能高亮插件架构解析与性能优化实践

MultiHighlight智能高亮插件架构解析与性能优化实践 【免费下载链接】MultiHighlight Jetbrains IDE plugin: highlight identifiers with custom colors 🎨💡 项目地址: https://gitcode.com/gh_mirrors/mu/MultiHighlight 在复杂的代码阅读场景…...

TDengine Tag 设计哲学与 Schema 变更机制

2.数据模型 > 04 Tag 设计哲学与 Schema 变更机制 — 静态属性建模与在线结构演进 适用版本:TDengine v3.x(v3.3.x / v3.4.x) | 最后更新:2026-05-16 概述 Tag(标签)是 TDengine 数据模型中区别于传统…...

主产区安全整改深化 行业加速洗牌(5 月 21 日)

1.湖南浏阳等产区开展全覆盖排查,重点整治违规库存、超量存放、追溯缺失等问题。 2.中小零售点面临搬迁 / 关停,合规化与信息化追溯成生存门槛。 3.海外市场:美国堪萨斯城皇家队赛事烟花秀(5 月 22 日),赛事…...

(CVPR2026)Parameter-Efficient Semantic Augmentation forEnhancing Open-Vocabulary Object Detection

paper:https://arxiv.org/abs/2604.04444code:https://github.com/jokercao6/HSA-DINO...

如何快速掌握CircuitJS1桌面版的3个核心秘诀

如何快速掌握CircuitJS1桌面版的3个核心秘诀 【免费下载链接】circuitjs1 Standalone (offline) version of the Circuit Simulator with small modifications based on modified NW.js. 项目地址: https://gitcode.com/gh_mirrors/circ/circuitjs1 CircuitJS1 Desktop …...

30天试用期即将到期?3种方法一键重置JetBrains IDE,告别频繁重装烦恼

30天试用期即将到期?3种方法一键重置JetBrains IDE,告别频繁重装烦恼 【免费下载链接】ide-eval-resetter 项目地址: https://gitcode.com/gh_mirrors/id/ide-eval-resetter 你是否曾经因为JetBrains IDE试用期到期而不得不重新安装软件&#xf…...

Windows右键菜单终极优化指南:如何用ContextMenuManager让右键菜单快速响应

Windows右键菜单终极优化指南:如何用ContextMenuManager让右键菜单快速响应 【免费下载链接】ContextMenuManager 🖱️ 纯粹的Windows右键菜单管理程序 项目地址: https://gitcode.com/gh_mirrors/co/ContextMenuManager 还在为Windows右键菜单卡…...

关于我尝试写博客这档事

一、起因 在学习过数据结构后,希望更改目前记笔记的形式,于是想到整理成文章,通过开源方式锻炼表达力与技术理解力,希望复习与拓展所学习过的知识,使用费曼学习法学习 二、自我介绍 1.基本信息 博主名为Doubletful(Dou…...

百考通智能降重——为原创保驾护航 ��️

在毕业季的焦虑中,“降重”常被误解为一场与查重系统的文字游击战: 换同义词、调语序、加废话…… 但真正的问题从来不是“字重复”,而是表达缺乏原创性。 当你的论文充斥着“研究表明”“可以发现”“具有重要意义”这类千篇一律的学术套话…...

yolo26 语义分割特征融合:全网首发--使用 ERM 模块改进 Neck 多尺度特征融合能力 ✨

1. 工程简介 🚀 本工程基于 Ultralytics 框架扩展,面向语义分割与 YOLO 系列模型改进实验。核心特点是通过切换 yaml 配置文件,即可快速完成不同网络结构的训练、对比与验证,无需为每个模型单独编写训练脚本。 当前已支持的主要模型家族 🧩 语义分割模型:UNet、UNet+…...

百考通:AI一键生成论文降重与去AI痕迹,提供双重优化保障,让学术成果更合规

在学术写作与论文发表的过程中,重复率过高、AI生成痕迹明显,是困扰无数学生与科研工作者的核心难题。不仅可能导致查重不通过,更会影响学术诚信与成果认可度。百考通(https://www.baikaotongai.com) 凭借智能文本优化技…...

好用的长沙装修设计值得选的服务商

在装修设计领域,选择一家靠谱的服务商至关重要。长沙互知空间设计工作室,也就是长沙互知建筑设计有限公司,便是众多客户值得信赖的选择。下面将从几个方面详细分析它的优势,并与其他知名品牌进行对比,为大家提供一些实…...

利亚德沙特LED视效工厂预计7月投产,Micro LED本地交付进入中东

今天讲的出海案例是利亚德,这家 1995 年成立、从 LED 显示产品研发生产销售起步,并做到小间距和 Micro LED 的视效科技公司,沙特工厂预计 2026 年 7 月投产。在 2026 年 5 月的投资者关系活动记录表中,利亚德光电股份有限公司回应…...

2026年AI大模型接口中转站性能成本全维度实测 主流服务商权威排名榜单发布

一、五大主流接口中转平台核心维度全横向对标2026年AI大模型已经完成从技术验证向规模化落地的深度跨越,国内日均AI Token调用量已经突破140万亿,大模型API聚合中转站的角色早已不再是简单的协议转发层,已经进化为企业搭建自身AI能力体系的核…...

书匠策AI实测揭秘:毕业论文全流程竟然能这样“偷懒“?

各位同学,我是一个专门教别人写论文的博主。说实话,每次看到评论区有人问"论文到底怎么开头",我都想穿越屏幕去帮他敲键盘。 但今天不一样,我要给你们安利一个我自己偷偷用了好几次的工具——书匠策AI。注意&#xff0…...