1. 丢失数据修改:两个事务T1,T2读入同一数据并进行修改,但只能保存最后执行事务的修改结果所以第一个事务修改的结果就自动后一个事务被覆盖!!!
  2. 读“脏”数据:产生原因:数据在执行修改操作!例:两个事务T1,T2,事务T1执行的功能是对某一数据进行修改,而事务T2在T1执行过程中读取该修改后数据(此时T1还未将数据写回数据库中),但因某些原因T1修改数据失败,数据回滚!造成T2读到的值与数据库中的不一致(即产生脏数据)。
  3. 不可重复读:事务T1先读取某个数据,即后T2对该数据进行修改操作,T1再重新读取时,所得结果不一致,造成不可重复读错误!另外产生幽灵数据也属于不可重复读范畴,即前后读取的数据不同,莫名多了(插入)或少了(删除)一些记录!
  4. 为避免上述情况然后产生了:排他锁(X,写锁):某数据被T1加X锁,不再允许其他事务对其进行任何锁处理(直到T1释放X锁),仅有事务T1能对数据可读可修改,其他事务无读写权限;    共享锁(S,读锁): 只读,不能修改,即允许多个事务对某个数据同时获得S锁读权限,且无法添加X锁修改数据!
  5. 封锁协议:1:一级封锁协议(T1,T2只做修改处理,不读取数据)-->T1:X锁,T2:X锁,对事务T1要修改的数据加X锁,直到T1事务结束再释放,T2再加X锁,优点:避免数据丢失修改;     2:二级封锁协议(T1做修改处理,T2读取数据)-->T1:X锁,T2:S锁,优点:不丢失数据修改,且不读“脏数据”,缺点:不可重复读(事务T1给数据加了X锁,T2此时无法执行读操作);       3:三级封锁协议-->T1:S锁,T2:X锁,优点:不丢失数据修改,不读“脏数据”,可重复读!
  6. 活锁、死锁本质上是一样的:都是多个线程任务没有任何进展。原因是在获取共享资源时,并发多线程或多进程声明资源占用(即加锁)的顺序有冲突,死锁是加不上就死等(多线程都处于阻塞状态);活锁是加不上就放开已获得的资源重试,这种情况下线程并没有阻塞所以是活的状态,但是只是在做无用功(每次重试都是失败的),其实多核活锁不太常见(资源分配充足)。举个例子资源A和B,进程P1和P2
    start:
    P1 lock A
    P2 lock B
    P1 lock B fail context switch
    P2 lock A fail context switch
    P1 release A
    P2 release B
    goto start    (活锁,不断尝试,做无用功)
  7. 防止死锁常用办法:1:一次封锁法:把第一个事务要用到的数据一次性加锁处理,缺点降低了系统的并发性!       2:顺序封锁法:预先对数据对象规定一个封锁顺序,所有事务都按这个顺序来操作,缺点不同事务的执行操作不同很难统一封锁顺序!

数据库并发操作下的:排他锁(X),共享锁(S),死锁,活锁相关推荐

  1. mysql 子查询 共享锁_MySQL数据库排他锁与共享锁

    导语:"简单印象"头条号每天将不定时发布一篇文章,文章内容大多为原创性技术相关或技术人的另一面生活,欢迎大家收藏文章或点击右上角的"关注",支持我的头条号,也可 ...

  2. mysql排他锁和共享锁视频_分享MySQL 中的共享锁和排他锁的用法

    在 MySQL 中的行级锁.表级锁和页级锁中,咱们介绍过,行级锁是 MySQL 中锁定粒度最细的一种锁,行级锁能大大减少数据库操作的冲突.行级锁分为共享锁和排他锁两种,本文将详细介绍共享锁和排他锁的概 ...

  3. mysql普通查询排他锁_MySql 共享锁 排他锁

    行级锁是 MySQL 中锁定粒度最细的一种锁,行级锁能大大减少数据库操作的冲突,行级锁分为共享锁和排他锁两种. 共享锁(Share Lock) 共享锁又称读锁,是读取操作创建的锁.其他用户可以并发读取 ...

  4. java共享锁和排他锁的区别_排他锁和共享锁分别是什么?有什么不同?

    分布式锁是控制分布式系统之间同步访问共享资源的一种方式.如果不同的系统或是同一个系统的不同主机之间共享了一个或一组资源,那么访问这些资源的时候,往往需要通过一些互斥手段来防止彼此之间的干扰,以保证一致 ...

  5. mysql行锁+排他锁,mysql的表锁和行锁,排他锁和共享锁。

    1.表锁和行锁 表锁和行锁锁的粒度不一样,表锁锁住的是一整张表,行锁锁住的是表中的一行数据,行锁是开销最大的锁策略,表锁是开销最小的锁策略. InnoDB使用的是行级锁,MyISAM使用的是表级锁. ...

  6. mysql排他锁_mysql共享锁与排他锁

    mysql锁机制分为表级锁和行级锁,本文就和大家分享一下我对mysql中行级锁中的共享锁与排他锁进行分享交流. 共享锁又称为读锁,简称S锁,顾名思义,共享锁就是多个事务对于同一数据可以共享一把锁,都能 ...

  7. mysql update 排他锁_Mysql 共享锁(lock in share mode),排他锁(for update)

    共享锁(lock in share mode) 简介 允许不同事务之前共享加锁读取,但不允许其它事务修改或者加入排他锁 如果有修改必须等待一个事务提交完成,才可以执行,容易出现死锁 共享锁事务之间的读 ...

  8. 什么是并发控制?并发控制技术的原理,最基本的分锁模式(排他锁,共享锁)

    数据库是一个共享资源,应该允许多个用户程序并行地存取数据,当对数据库进行并行操作时,有可能出现数据不一致的情况. 并行操作:在单处理机系统中,事务的并行执行实际上是这些并行事务的操作轮流交叉进行. 为 ...

  9. mysql锁(全局锁、表锁、行锁、页锁、排他锁、共享锁)

    mysql锁 简介 数据库锁定机制简单来说,就是数据库为了保证数据的一致性,而使各种共享资源在被并发访问变得有序所设计的一种规则. MySQL数据库由于其自身架构的特点,存在多种数据存储引擎,每种存储 ...

最新文章

  1. fragment类onresume里面刷新操作处理
  2. webscraper多页爬取_数据收集:web scraper 多页(无规律url)抓取
  3. 智源发布人脸识别与公共卫生调研报告
  4. 2、Java Swing JFrame和JPanel:窗口容器和面板容器
  5. Mybatis 一连串提问,被面试官吊打了!
  6. (工作中)Apache常见配置
  7. 倾囊传授DELL主板BIOS设置
  8. ping命令执行过程详解
  9. ffmpeg不提供自己的编译结果了
  10. matlab normxcorr2函数,matlab – 以类似于’conv2’的方式获得`normxcorr2`输出的优雅方法 – (删除不需要的边)...
  11. FPGA 串口中断_正点原子【STM32-F407探索者】第九章 串口通信实验
  12. 【Mava】一个分布式多智能体强化学习研究框架
  13. 字号大小对应表(字号换算磅值)
  14. win10系统崩溃(UNEXPECTED_STORE_EXCEPTION)解决方法
  15. hadoop集群搭建(系统Debian,ssh工具MobaXterm)
  16. 腾讯历届笔试题(1)
  17. NosqlBooster For MongoDB解决License问题
  18. 看了这篇文章,再也不用纠结该选OV证书还是EV证书了
  19. 微信表情符号已写入判决书
  20. 关于睡眠检测自定义VIEW

热门文章

  1. 以太网帧分析与IP报文结构分析(一)
  2. 聚观早报 | iPadOS 16 推迟发布;罗辑思维创业板 IPO 终止
  3. Unity多点触摸屏幕交互之TouchScript(二)单个物体为对象的内容交互
  4. 想要快速入门自媒体,这些自媒体运营方法一定要知道
  5. 运动手表最外圈的数字的作用
  6. 购物车的实现(未登录时也可以使用)
  7. vxe-table 虚拟树、树形表格的使用
  8. 有道云笔记不同步_有道云笔记无法同步怎么处理-处理有道云笔记不能同步上传的方法 - 河东软件园...
  9. 基于HCL模拟器华三设备IPsec vpn的配置实验
  10. PageOffice如何显示/隐藏Word文档中的标尺