数据并发问题

数据的并发问题,是指一个数据库经多个客户端采用并发的方式访问而导致的各种并发问题。这些问题归结为5类,其中包括3类数据读问题;2类数据更新问题。

3类数据读问题:

  • 脏读

    A事务读取B事务尚未提交的更改数据,并在这个数据的基础上进行操作。如果恰巧B事务回滚,那么A事务读到的数据根本是不被承认的。

  • 不可重复读

    不可重复读指A事务读取B事务已经提交的更改数据。

  • 幻象读

    A事务读取了B事务提交的新增数据,这时A事务将出现幻象读的问题。

不可重复读与幻象读的区别主要有两点:

  1. B事务操作是不同。不可重复读,B事务操作是更新;幻象读对应的B事务操作是新增。
  2. 解决这两类问题,相应的方法不同。对于不同重复读,只需要解决被更新数据的读取问题。将读取的行数据进锁定—行级锁;对于幻象读,需要解决的是整张数据表的写入问题,数据库使用—表级锁进行解决。

2类数据更新问题

  • 第一类更新丢失

    A事务撤销时,把已经提交的B事务的更新数据覆盖了。

  • 第二类更新丢失

    A事务覆盖B事务已经提交的数据,造成B事务所作操作丢失。

解决方案–事务隔离级别

为了解决数据并发问题,数据库提供了行级锁与表级锁。但是两种锁使用太复杂。所以数据库系统为用户提供了自动锁机制。只要用户指定会话的事务隔离级别,数据库就会分析事务中的sql语句,然后自动为事务操作的数据资源添加适合的锁。此外数据库还会维护这些锁,当一个资源上的锁数目太多时,自动进行锁升级以提高系统的运行性能,而这一过程对用户来说是完全透明的。那么不同的事务隔离级别能够解决的数据并发能力是不同。解决情况如下表

Y允许,N不允许
隔离级别 脏读 不可重复读 幻象读 第一类丢失更新 第二类丢失更新
read uncommitted Y Y Y N Y
read committed N Y Y N Y
repeatable read N N Y N N
serializable N N N N N

数据并发问题-精通spring 企业应用开发实战读书笔记相关推荐

  1. iPhone与iPad开发实战读书笔记

    iPhone开发一些读书笔记 手机应用分类 1.教育工具 2.生活工具 3.社交应用 4.定位工具 5.游戏 6.报纸和杂志的阅读器 7.移动办公应用 8.财经工具 9.手机购物应用 10.风景区相关 ...

  2. Spring 3.x企业应用开发实战

    Java技术大系 Spring 3.x企业应用开发实战 陈雄华    林开雄      著 Publishing House ofElectronics Industry 北京·  BEIJING 内 ...

  3. Spring 3.x 企业应用开发实战(含CD光盘1张)

    Spring 3.x 企业应用开发实战(含CD光盘1张)  陈雄华,林开雄著 ISBN 978-7-121-15213-9 2012年2月出版 定价:90.00元(含光盘1张) 16开 728页 宣传 ...

  4. 《精通Spring4.X企业应用开发实战》读后感第二章

    一.配置Maven\tomcat https://www.cnblogs.com/Miracle-Maker/articles/6476687.html https://www.cnblogs.com ...

  5. 《HBase企业应用开发实战》—— 第3章 数 据 模 型

    本节书摘来自华章出版社<HBase企业应用开发实战>一 书中的第3章,第3.1节,作者:马延辉 孟鑫 李立松 ,更多章节内容可以访问云栖社区"华章计算机"公众号查看. ...

  6. 《HBase企业应用开发实战》—— 2.5 停止HBase集群

    本节书摘来自华章出版社<HBase企业应用开发实战>一 书中的第2章,第2.5节,作者:马延辉 孟鑫 李立松 ,更多章节内容可以访问云栖社区"华章计算机"公众号查看. ...

  7. Spring线程池开发实战

    Spring线程池开发实战 作者:chszs,转载需注明. 作者博客主页:http://blog.csdn.net/chszs 本文提供了三个Spring多线程开发的例子,由浅入深,由于例子一目了然, ...

  8. JAVA WEB整合开发王者归来 -- 读书笔记 by CZF 完整版

    JAVA WEB整合开发王者归来 -- 读书笔记  目录 第1章 概述. 1 第2章 搭建web开发环境. 1 第3章 Servlet技术. 1 第4章 深入JSP技术. 7 第5章 会话跟踪. 12 ...

  9. “物联网开发实战”学习笔记-(二)手机控制智能电灯

    "物联网开发实战"学习笔记-(二)手机控制智能电灯 如果搭建好硬件平台后,这一次我们的任务主要是调试好智能电灯,并且连接到腾讯云的物联网平台. 腾讯云物联网平台 腾讯物联网平台的优 ...

最新文章

  1. js ==与===区别(两个等号与三个等号)
  2. C#中数值型数据保留N位小数方法
  3. 【五线谱】五线谱的线与间 ( 五线谱中的 第N线与第N间 | 五线谱上的 上加N线与上加N间 | 五线谱下的 下加N线与下加N间 | 高音谱号下加一线 等同于 低音谱号上加一线 )
  4. Python语言程序设计之Python3 SMTP发送邮件
  5. C++ 注册表取值 按行读取txt文件 时间差天数 格林威治时间转标准时间
  6. 神策数据加入中国大数据产业生态联盟,神策营销云及融媒解决方案获联盟认证...
  7. Hive 内部表与外部表
  8. java的基础类库称为_JAVA基本类库介绍
  9. 使用nmcli 实现 bond0 网络组 网桥三种模式
  10. i9100美化android.policy.jar,摆脱越狱束缚 三星I9100安装应用更轻松
  11. 线序及模式配置Linux,[CCNA图文笔记]-1-水晶头线序及设备互联法则
  12. JZOJ 3456. 【NOIP2013模拟联考3】恭介的法则(rule)
  13. AS数据库自动备份的DOS语句
  14. java编解码技术,netty nio
  15. 计算机一级添加通讯录好友,电脑企业微信从微信好友中添加成员功能如何使用...
  16. Drilldown饼状图
  17. 【基础入门题048】骰子游戏(一)
  18. 40年开店近4万家,麦当劳老大地位恐不保!看看人家这心机!
  19. 数据结构与算法(java):线性表(链表-双向链表)
  20. 当封号成为一种常态,网络营销人该何去何从?

热门文章

  1. 手机指令集:armv7 armv8
  2. 爱发php企业发卡网源码_爱发个人版自动发卡平台PHP开源源码【官方正版】
  3. 如何将旧iPhone 的数据全部转移到新iPhone SE3上?
  4. 前端漫漫-Element UI报错:Unknown custom element: <el-menu>
  5. 2018dnf服务器维护时间,dnf2018年5月电脑管家活动_2018dnf5月电脑管家活动网址_快吧游戏...
  6. 牵手泰隆银行,DevSuite助力IT项目研发管理新飞跃
  7. 运放如何产生方波信号
  8. WordPress新增文章时添加提示语
  9. 如果你开车正常行驶在马路上?见一垂死之老头骑自行车逆行向你车头撞来。...
  10. 微信小程序iBeacon测距及稳定程序的实现