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

数据库中全局锁、表级锁、行级锁的区别

一、全局锁(锁数据库)

        会阻塞整个数据库的所有操作,只允许一个用户对数据库进行写操作,其他用户无法对数据库进行读写操作。经常用于对整个数据库进行备份恢复等操作。

二、表级锁(锁表)

        针对特定表的锁定机制。当一个事务正在修改某个表的时候,其他事务无法同时修改该表,但可以读取该表;表级锁包括两种类型共享锁和排它锁

共享锁允许多个事务同时读取同一张表,但不允许对该表进行写操作

排它锁:只允许一个事务修改该表,其他事务既不能读取该表,也不能修改该表

表级锁优点对于控制并发访问非常有效,缺点是如果多个事务需要同时修改同一行数据,就会出现死锁的情况。

三、行级锁(锁一行数据)

        是最细粒度的锁定机制,只锁定表中的某一行数据,而不是整个表或整个数据库。行级锁允许多个事务同时修改同一张表,但是只有在修改同一行数据时,才会阻塞其他事务的操作。

        行级锁能够有效地提高并发性和可用性,并减少死锁的情况,但是也会增加额外的开销和复杂性。因此,在使用行级锁时需要谨慎考虑其影响,避免出现意想不到的问题。

总之,全局锁就是锁数据库的,用来备份和恢复数据库数据的;表级锁是锁整张表只能读表不能改表;行级锁是锁一行数据的,可以提高并发性和可用性,减少死锁情况,行级锁只有多个事务修改同一行数据才会阻塞锁的粒度越低,并发性和可用性越好。


http://www.kler.cn/a/18230.html

相关文章:

  • 软件工程概论项目(二),node.js的配置,npm的使用与vue的安装
  • python: postgreSQL using psycopg2 or psycopg
  • Scala入门基础(17.1)Set集习题
  • macOS解决U盘装完系统容量变小的问题
  • Qt 实现文件监控程序
  • 程序员年薪百万秘籍(一)
  • pyinstaller打包Mediapipe时遇到的问题
  • PCIe物理层弹性缓存机制(详细)解析-PCIe专题知识(四)
  • ( “图“ 之 二分图 ) 785. 判断二分图 ——【Leetcode每日一题】
  • 2023年全国最新保安员精选真题及答案65
  • 获得 随机验证码(以图片为底层)
  • OmniVerse + ChatGPT = 智能3D建模
  • 416. 分割等和子集
  • JavaWeb综合案例-Servlet优化
  • Selenium:三种等待方式
  • 【C++学习】文件操作
  • c++ cuda加速学习笔记
  • cookie和session的简单介绍(lnh25)
  • OJ练习第93题——数青蛙
  • Docker启动多个mysql容器
  • (六)【平衡小车制作】位置式PID、直立环与速度环编程
  • CompletableFutrue异步处理
  • React 第三方插件 —— Cron 表达式生成器(qnn-react-cron)
  • Java 多线程知识
  • K8S:K8S自动化运维容器化(Docker)集群程序
  • 《python爬虫练习》之随机的User-Agent请求头