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

数据库中各种锁汇总

本文汇总简记数据库中的各种锁。

名称英文名称定义解释
悲观锁Pessimistic Lock在访问数据前先加锁,防止其他事务的并发修改数据通过获取锁来保证数据的独占性,从而避免并发修改数据带来的问题。
乐观锁Optimistic Lock在修改数据时先不加锁,而是在提交数据时检查数据是否被其他事务修改过通过比较版本号或时间戳等乐观策略来保证数据的一致性和并发性,适用于并发量不高的场景。
行级锁Row-level Lock以数据行为单位进行加锁,只锁定需要访问的数据行通过行级锁来保证数据行的独占性,从而避免并发修改数据带来的问题。
表级锁Table-level Lock以整个表为单位进行加锁,锁定整个表通过表级锁来保证整个表的独占性,适用于只有少数事务同时访问该表的场景。
共享锁Shared Lock多个事务可以共享一把锁,读取共享数据共享锁可以允许多个事务同时读取共享数据,但不允许写操作。
排他锁Exclusive Lock只有一个事务可以持有一把锁,写入数据排他锁可以保证只有一个事务对数据进行写操作,其他事务需要等待锁释放后才能进行操作。
记录锁Record Lock保护单个数据行的锁当一个会话对一行数据进行修改时,会对该行数据进行记录锁定,其他会话需要等待锁释放后才能访问该行数据。
间隙锁Gap Lock用于保护索引键值的锁当一个会话执行范围查询时,会对查询范围内的索引键值进行间隙锁定,防止其他会话在查询过程中插入相同索引键值的数据。
意向锁Intention Lock用于指示一个事务需要对表中某个数据行或数据行范围加锁当一个事务需要对某个数据行加行级锁或间隙锁时,需要先对表加意向锁,表示该事务有意在该表中加行级锁或间隙锁。
http://www.lryc.cn/news/30770.html

相关文章:

  • p76 - Python 开发-内外网收集 Socket子域名DNS
  • QCC51XX--eFush Key加密
  • nginx http模块
  • 守护进程 || 精灵进程
  • Zookeeper3.5.7版本——客户端命令行操作(znode 节点数据信息)
  • 如何写好单测
  • CDH-6.3.2内置spark-2.4.0的BUG
  • SpringCloud之ElasticSearch笔记
  • 数字图像学笔记 —— 17. 图像退化与复原(自适应滤波之「最小二乘方滤波」)
  • 2023-03-05:ffmpeg推送本地视频至lal流媒体服务器(以RTMP为例),请用go语言编写。
  • MathType7最新版免费数学公式编辑器
  • 一文带你入门angular(中)
  • 单例设计模式共享数据问题分析、解决(c++11)设计多线程。
  • Embedding-based Retrieval in Facebook Search
  • xmu 离散数学 卢杨班作业详解【8-12章】
  • Linux入门篇-权限管理
  • Linux(基于 Centos7) 常用操作
  • Math类详解与Random类、三种随机数生成方式(java)
  • Mac编译QT程序出现Undefined symbols for architecture x86_64
  • 蓝桥杯-李白打酒加强版
  • AtCoder Beginner Contest 292 (A - E) 记录第一场ABC
  • ubuntu安装使用putty
  • 【CS144】Lab5与Lab6总结
  • GDScript 导出变量 (Godot4.0)
  • shell:#!/usr/bin/env python作用是什么
  • 计算机行业AIGC算力时代系列报告-ChatGPT芯片算力:研究框架
  • 『MyBatis技术内幕』源码调试前提
  • # Linux最新2022年面试题大汇总,附答案
  • css中重难点整理
  • JavaScript-扫盲