数据库锁的基本了解

浅析数据库(DB)、操作数据存储(ODS)和数据仓库(DW)的区别与联系 文章背景:相信大部分刚接触上面三个概念的同学,都多多少少会有些迷惑,现在我就给大家简单分析下这三者的关系,希望大家对这三者的概念理解有所帮助吧。本文主要从下面两类关系来叙述上面三者的关系: 数据库(DB)和数据仓库(DW)的区别与联系 操作数据存储(ODS)和数据仓库(DW)的区别与联系 数据库与数据仓库的区别与联系数据库与数据仓库基础概念:数据库:传统的关系型数据库的主要应用,主要是基本的、日常的 阅读详情

表锁

就是在数据表层面加锁。分别是有读锁和写锁。很好理解,读读兼容,写写,读写互斥。加锁的方式和释放方式如下。

lock table user write;
lock table user read;
unlock tables;

行锁

innodb可以给行加锁,相比表锁,这样可以减少加锁的粒度,减少锁的冲突,提高并发能力。行锁有以下两种。

  • 共享锁(shared lock):允许事务读行,使用共享锁后,其他事务可以获取相同数据集的共享锁,但是不能获得排他锁。手动加锁方式
    select * from table lock in share mode

  • 排他锁(exclusive lock):允许事务写行,使用排他锁后,其他事务不能获取相同数据集的共享锁和排他锁。手动加锁方式
    select * from table for update

需要知道的是 sql 当中的 insert update delete 会自动获取排他锁,select 不会获取任何锁。

意向锁

  • 意向共享锁(intention shared lock):事务要获取共享锁之前要先取得该表的意向共享锁
  • 意向排他锁(intention exclusive lock):事务要获取排他锁之前要先取得该表的意向排他锁

因为同时具有表锁和行锁,有些情况下会存在两种锁的冲突。例如:

  1. 事务a获取了数据行id=1的排他锁,那么其他事务不能够对a进行写操作。
  2. 事务b此时要对表进行加写锁,肯定是不能让事务b成功的。因为如果成功,b可以对表中任何行进行写操作,那么和数据行id=1的排他锁冲突。
  3. 此时b加写锁需要判断表是否已经加锁,或者每行是否加排他锁。因此引进意向锁。
  4. 在b加写锁时,直接判断该表是否已经有意向排他锁即可。

各类锁的兼容性如下:

下图为网络上的图,解释各种锁之间的兼容性。其中 X S为表锁。

注意:意向锁和行锁是不会冲突的

image

需要注意的是 IS IS, IX IX, IS IX是兼容的,因为排他锁和共享锁是行锁,会针对不同行加锁,所以意向锁可以重复获得。

Azure数据库服务比较:SQL Database vs Cosmos DB 结构化数据场景:如订单管理、用户认证等需要强事务支持的业务非结构化/半结构化场景:如物联网设备日志、社交网络数据、实时推荐系统:基于传统关系型数据库(SQL Server)的云原生服务,支持ACID事务和复杂SQL查询Cosmos DB:全球分布式NoSQL数据库,支持多模型(文档、键值、图、宽列)和弹性扩展两者的架构设计哲学有何本质区别?数据建模和查询语言的差异如何影响开发体验?一致性、可用性、吞吐量的权衡模型如何选择?典型业务场景下的选型决策依据是什么?技术原理对比。 阅读详情

相关推荐

一文了解数据库,数据仓库,数据湖,数据集市,数据湖仓

数据库,数据仓库,数据湖,数据集市,数据湖仓的相同点和区别。

AI人人懂 3676

关于数据库的锁的理解

当数据库有并发事务的时候,保证数据访问顺序的机制称为锁机制。乐观锁:是一种乐观的认为并发访问不会产生冲突的锁机制。在使用乐观锁时,系统不会阻塞任何一个线程,而是允许多个线程同时访问共享资源。当一个线程要更新共享资源时,它会先读取当前的版本号或时间戳,并将该值保存在本地。当线程提交更新时,它会将保存的版本号或时间戳与当前的版本号或时间戳进行比较,如果相同,则说明没有其他线程在该线程读取数据之后修改了共享资源,该线程可以成功提交更新。

Sera的博客 908

从理论到波形:NE555多谐振荡器设计与示波器实战验证

本文详细介绍了NE555多谐振荡器的设计原理与实战验证方法。从基础理论到电路参数计算,再到面包板搭建与示波器测量,全面解析如何利用NE555芯片实现稳定的方波输出。通过实际案例演示了频率调整、占空比优化等技巧,并提供了常见问题排查指南,帮助电子爱好者快速掌握这一经典电路设计。

weixin_29159613的博客 281

数据库锁介绍

锁是计算机协调多个进程或纯线程并发访问某一资源的机制。在数据库中,除传统的计算资源(如CPU、RAM、I/O等)的争用以外,数据也是一种供许多用户共享的资源。如何保证数据并发访问的一致性、有效性是所有数据库必须解决的一个问题,锁冲突也是影响数据库并发访问性能的一个重要因素。从这个角度来说,锁对数据库而言显得尤其重要,也更加复杂。

生而为人我很抱歉 3086

CSS字体样式全攻略

🧱 让文字有空间感,适合标题或LOGO。🖋️适合插画、创意工作者的个人页面。🔥 适合标题、品牌名,视觉冲击力强。🧘‍♀️适合极简设计、文化类网站。✨适合科技类网站、博客、作品集。🚀适合游戏、AI、科技类项目。🐰 适合儿童类网站或节日氛围。📖适合时尚、生活方式类内容。🌫️ 适合神秘、梦幻主题。🌃 夜店风、科技感十足。具体效果是文字会上下跳动。

dreams_dream的博客 1804

基于python获取网易云热门歌单及封面

先看一下图片背后的代码 非常好,里面歌单名字,id,以及封面图片都有了.在复制url的时候注意把/#删掉,要不然爬不了. import requests from lxml import etree url='https://music.163.com/discover/playlist' head={ 'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Ch

ziyuan12345678的博客 536

详解数据库的锁机制及原理

本文详细解析了数据库锁机制及其原理,重点介绍了悲观锁和乐观锁两大类。悲观锁包括表锁、行锁和页锁,其中行锁又分为共享锁、排他锁和更新锁,用于解决并发访问中的数据一致性问题。乐观锁则通过版本号或时间戳机制实现,适用于读多写少场景。文章还阐述了意向锁的作用,以及不同锁机制如何实现数据库隔离级别,从读未提交到可重复读,逐步提升数据一致性。锁机制的设计直接影响数据库在高并发场景下的性能和可靠性,合理选择锁类型对系统优化至关重要。

大河之犬的博客 6238

cst使用局部网格加密,手动加密,special设置等方法合理网格布局加速仿真速度

在CST中,计算复杂模型或者阵列的时候往往需要耗费大量仿真时间,除了使用更高性能的电脑或工作站进行仿真,合理对CST的仿真网格进行适当设置也是必不可少的一步。CST中网格设置影响模拟的精度和速度,因此花时间理解网格过程是很重要的。

OVEN_b612的博客 1万+

浅入深出了解数据库锁机制

浅入深处了解数据库锁机制,CAS、ABA、乐观锁、悲观锁、Java、synchronized、多线程发、线程安全

qq_51210847的博客 957

工业机器人抓取目标检测与抓取姿态估计系统:基于YOLOv12与Cornell Grasping Dataset

工业机器人抓取是自动化生产中的核心环节,而精确的目标检测和抓取姿态估计是实现高效抓取的关键。本文将详细介绍如何构建一个完整的工业机器人抓取系统,该系统结合了最新的YOLOv12目标检测算法和Cornell Grasping Dataset的抓取姿态估计,并提供了用户友好的UI界面。本文详细介绍了一个完整的工业机器人抓取系统,该系统结合了YOLOv12目标检测和基于Cornell Grasping Dataset的抓取姿态估计。我们将使用PyQt5构建一个用户友好的界面,集成目标检测和抓取姿态估计功能。

YOLO 573

1小时读完100篇文献的正确打开方式

各位同仁好,我是七哥。一个在高校里从事人工智能 相关领域研究,钻研用大模型AI实操的学术人。可以和七哥交流学术写作或Gemini、GPT、Claude 等大模型 学术实操相关问题,多多交流,相互成就,共同进步。文献阅读与整理一般都是最先开始、却也最容易被低估的一步。很多学术同仁一开始就陷入越读越多、越读越乱的状态:论文下载了一大堆,但真正能用来支撑自己观点的内容却始终难以提炼出来。一方面,我们需要通过文献了解该研究领域的整体发展脉络,把握当前学界已经讨论到什么程度;

智能AI让学术科研更容易 49

什么是数据库锁(Lock)?有哪些类型的锁

数据库锁是一种机制,用于协调多个并发事务对数据库中数据的访问。当多个事务同时尝试对相同的数据进行读取或写入操作时,可能会引发数据一致性问题。数据库锁通过限制并发事务的操作,以确保数据的完整性和一致性。共享锁(Shared Lock):也称为读锁。允许多个事务同时获取共享锁,以进行读取操作。共享锁之间不会互斥,允许并发读取。但是,共享锁与排他锁之间互斥,一个事务持有共享锁时,其他事务无法获得排他锁。排他锁(Exclusive Lock):也称为写锁。排他锁是互斥的,只允许一个事务持有。

stormjun的博客 6737

48、基于头部电信号和触觉的人机交互技术研究

本文探讨了基于头部电信号控制决策和触觉感知的人机交互技术。通过EEG信号采集与ANN模型(TDNN/PRNN)分析,实现对用户意图的识别;同时利用触觉传感接口识别操作员有意接触,提升人机协作安全性。研究涵盖系统设计、数据处理流程、实验结果及技术拓展方向,并展望了两种技术在工业、医疗与智能家居等领域的融合应用前景。

i1j2k的博客 100

事务的锁的基本种类及定义

基本的锁的类型有两种锁:排他锁(X锁)和共享锁(S锁)排他锁也叫写锁。当事务T对数据对象A加上X锁时,就只允许事物T对A进行和修改A,其他事务都无法对A再加任何其他的锁,直到T释放对A的锁。共享锁也叫读锁。当事务T对数据对象A加上S锁后,事务T可以读取A,但是不能对A进行修改,其他事务只能对A加上S锁,但是不能加X锁,直到T释放掉对A的S锁为止。封锁协议主要有3种,分别对应的一级、二级、三级封锁协议。一级封锁协议:主要是指事务在修改数据前必须需要先加上X锁,直到事务结束才释放。二级封锁协议:在一级封锁协议的

zly03的博客 2630

肺癌术后随访离散选择实验(DCE)设计与SAS实现

随着肺癌早期诊断和治疗技术的进步,肺癌患者的生存率显著提高,术后随访管理成为提升患者生活质量的关键环节。然而,如何在有限的医疗资源下设计出既符合患者需求又具有成本效益的随访方案,是临床决策面临的重要挑战。 离散选择实验(Discrete Choice Experiment, DCE)是一种定量研究方法,通过模拟真实世界的选择情境,测量患者对不同随访方案属性的偏好程度。本研究旨在通过DCE方法,系统评估肺癌术后患者对随访服务的偏好,为制定以患者为中心的随访策略提供循证依据。

huanghm88的专栏 99

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

Oracle锁竞争和管理 CUUG

http://bbs.cuug.com/forum.php?mod=viewthread&tid=1335&extra=page%3D1 ? 定义锁级别 ? 列举引起锁冲突的原因 ?...

cuccntzd50572的博客 267

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

Oracle database monitoring scripts

$ contab -l 0 * * * * sh /oradb/report/monitor.sh 2. vi /oradb/report/monitor.sh . /oradb/u01/oracle/PROD/11.2.0/db_1/PROD_mustak.env cd /oradb/report /oradb/u01/oracle/PROD/11.2.0/db_1/sqlplus -s

haiyang_tian20140616的专栏 423

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

oracle锁

1.概念 数据库中有两种基本的锁类型:排它锁(Exclusive Locks,即X锁)和共享锁(Share Locks,即S锁)。 当数据对象被加上排它锁时,其他的事务不能对它读取和修改;加了共享锁的数据对象可以被其他事务读取,但不能修改。 根据保护对象的不同,Oracle数据库锁可以分为以下几大类: 1) DML lock(data locks,数据锁):用于保护数据的完整性,主要...

weixin_34037173的博客 101

Redis锁与DB锁

场景特征推荐使用原因高并发、短事务、非核心数据Redis 锁性能高,能支撑高并发,少量异常可通过业务兜底解决低并发、长事务、核心数据DB 锁(SELECT FOR UPDATE)事务 ACID 保障数据安全,无锁过期风险,满足合规审计要求幂等性控制(如重复支付)DB 锁(唯一索引)无需锁等待,性能高于悲观锁,能有效防止重复写入分布式系统、跨服务并发Redis 锁天然支持分布式,跨服务 / 跨机器的锁控制更简单单服务、本地并发本地锁(synchronized)

AlbenXie的博客 836

database.db 文件详解:数据库文件在 SQLite 中的作用与使用

本文解析了Python项目中自动生成的database.db文件的作用和使用方法。该文件是SQLite数据库的默认存储文件,包含表结构、数据记录和索引等信息。文章详细介绍了SQLite的存储原理、查看和操作方法(命令行与可视化工具)、备份策略及常见问题解决方案,并强调数据库管理需严谨,避免数据丢失。掌握.db文件的特性能帮助开发者更高效地进行项目调试和数据库维护。

聚焦学生开发者需求,分享课设毕设项目实战经验、系统开发技巧、数据库设计规范及文档排版实用方法。 2399

深入理解Oracle DB的锁和闩

本文深入介绍Oracle DB的锁和闩。

qq_45732829的博客 2017

数据仓库基本概念介绍

目录 1、数据仓库所处环节 操作层        数据仓库 数据集市 个体层 2、数据仓库概念 面向主题的        集成的 随时间变化的 非易失的 3、一般架构 STAGE层  ODS层 MDS层 ADS层  DIM层 ETL调度系统 元数据管理系统 4、设计的两个重要问题 1、 粒度 2、 分区 1、数据仓库所处环节        在一个成体系...

newchitu的博客 8058

苦练基本功——数据仓库

数据仓库是一个以主题为导向、集成、非易失性、时间一致的数据集合,用于支持企业决策者进行分析、报表和数据挖掘等活动。它通过对企业各个业务领域的数据进行整合和清洗,将其转化为可理解、易分析的数据,从而为决策者提供决策所需的信息和分析基础。数据仓库是一个面向主题的、集成的、稳定的、历史数据的集合,它包括多个来源系统的数据,这些数据被集成到一个统一的模型中,通过数据清洗、转换和整合,使得数据可以被分析、查询和报告。数据仓库的主要目的是为了支持决策,因此它的设计和建设需要遵循一定的原则和方法。

柳小葱的博客 3607

摸鱼不如来了解一下--数据库DB与数据仓库DW区别和联系

数据库(DB)和数据仓库(DW)的区别与联系 数据库与数据仓库基础概念: 数据库:传统的关系型数据库的主要应用,主要是基本的、日常的事务处理,例如银行交易。 数据仓库:数据仓库系统的主要应用主要是OLAP(On-Line Analytical Processing),支持复杂的分析操作,侧重决策支持,并且提供直观易懂的查询结果。 OLTP和OLAP概念补充: 数据处理大致可以分成两大类:...

信竞星球_少儿编程题库 312

了解概念,数据仓库和数据库有什么区别?

数据仓库和数据库在设计、用途和功能上存在显著差异。数据库主要用于事务处理,而数据仓库主要用于数据分析和报告。选择合适的数据存储解决方案取决于企业的具体需求和应用场景。

as230627的博客 1726

数据仓库基本了解

数据仓库基本了解

qq_41206014的博客 1177
上一篇: 事务隔离级别示例
下一篇: http缓存梳理
markfengfeng
博客等级 码龄11年 6粉丝 44原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值