数据库锁概述[通俗易懂]

数据库锁概述[通俗易懂]行锁和表锁主要是针对锁粒度划分的,一般分为行锁、表锁、库锁行锁:访问数据库的时候,锁定整个行数据,防止并发错误。表锁:访问数据库的时候,锁定整个表数据,防止并发错误。二者的区别:表锁:开销小,加锁快,不会出现死锁;锁定粒度大,发生锁冲突概率高,并发度最低。行锁:开销大,加锁慢,会出现死锁;锁定粒度小,发生锁冲突的概率低,并发度高。乐观锁和悲观锁乐观锁:顾名思义,就是很乐观,每次去拿数据的时候都认为别人不会修改,所以不会上锁,但是在更新的时候会判断一下在此期间别人有没有更新这个数据,可以使用版

大家好,又见面了,我是你们的朋友全栈君。

行锁和表锁

主要是针对锁粒度划分的,一般分为行锁、表锁、库锁

行锁:访问数据库的时候,锁定整个行数据,防止并发错误。

表锁:访问数据库的时候,锁定整个表数据,防止并发错误。

二者的区别:

表锁:开销小,加锁快,不会出现死锁;锁定粒度大,发生锁冲突概率高,并发度最低。

行锁:开销大,加锁慢,会出现死锁;锁定粒度小,发生锁冲突的概率低,并发度高。

乐观锁和悲观锁

乐观锁:顾名思义,就是很乐观,每次去拿数据的时候都认为别人不会修改,所以不会上锁,但是在更新的时候会判断一下在此期间别人有没有更新这个数据,可以使用版本号等机制。

乐观锁适用于多读的应用类型,这样可以提高吞吐量,像数据库如果提供类似于write_condition机制的其实都是体用乐观锁。在 Java 中 java.util.concurrent.atomic 包下面的原子变量类就是使用了乐观锁的一种实现方式 CAS 实现的。

悲观锁:顾名思义,就是很悲观,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会 block 知道它拿到锁。

传统的关系型数据库里面就用到了很多这种锁机制,比如行锁、表锁、读锁、写锁等,都是在操作之前先上锁。在Java 中 synchronized 和 ReentrantLock 等独占锁就是悲观锁思想的实现。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/150289.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 互联网公司职位简介

    互联网公司职位简介互联网公司职位简介

    2022年4月23日
    89
  • IT速查手册[通俗易懂]

    IT速查手册[通俗易懂]发现一个很好的点评公司网站,很有创意。里面大部分的评论都来自公司内部的员工。  想找IT工作的,可以先到那里了解公司的待遇、环境、内部等问题。  公司点评网:

    2022年7月1日
    29
  • 周鸿祎经典语录

    周鸿祎经典语录 ·如果是你想干的事情,在别人看起来可能是很难的一件事,不过你自己很喜欢,你不会觉得很苦。我开始创业那会是28岁。对我来讲,我创业的目的不是为了自己当老板,我希望有一个平台有一个环境,我可以控制一些资源,让我去创造一个新的产品和服务;  ·我不会顾忌别人怎么看,或者顾忌到放弃什么东西。我喜欢两句诗“天生我才必有用,千金散尽还复来”。当年离开方正,也是这样仰天大笑出门去……  ·如果说…

    2022年7月26日
    6
  • 开心农场2激活成功教程版无限金币钥匙_开心农场2乡村度假内购激活成功教程版

    开心农场2激活成功教程版无限金币钥匙_开心农场2乡村度假内购激活成功教程版 最近开心农场非常火,同学用C#模拟鼠标点击操作做了一个小外挂,但是这样做有如下缺点:1、计算机不能做其他事情,2、必须开着浏览器,3、对所有好友点一遍的时间太慢,4、对于开发者来说技术含量低了点,呵呵。 所以我尝试着改进这种实现,我的想法是:不用开启浏览器,直接运行一个应用程序,该程序将自己伪装成一个浏览器,与服务器连接,并发送浇水、除虫等命令。这样,甚至可以使用多线程向服务器发送命令,无需…

    2022年9月13日
    0
  • reaver-wps

    reaver-wps概述Reaver是暴力破解接入点PIN码的一种工具。这里简单说明,PIN码是8位数字,且第8位是由校验和,由前7位可以推出。而前7位又分为4和3两部分,所以暴力尝试最多10000+1000=11000次即可完成,破解所需的时间通常在2-5小时。支持的网卡驱动完全支持ath9krtl8187carl19170ipw2000rt2800pcirt73usb部分支持ath5kiwlagn

    2022年5月4日
    91
  • php 从第几个字符替换,php中几个字符串替换函数详解[通俗易懂]

    php 从第几个字符替换,php中几个字符串替换函数详解[通俗易懂]在php中字符替换函数有几个如有:str_replace、substr_replace、preg_replace、preg_split、str_split等函数,下面我来给大家总结介绍介绍.一、str_replace(find,replace,string,count)作用:str_replace()函数使用一个字符串替换字符串中的另一些字符。参数描述find必需,规定要查找的值.repla…

    2022年5月13日
    51

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号