博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
009-事务管理
阅读量:7229 次
发布时间:2019-06-29

本文共 688 字,大约阅读时间需要 2 分钟。

一、事务概述

  事务是一个不可分割的整体。

  事务ACID特性:原子性(Atomicty)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability)

事务的隔离级别

  READ_UNCOMMITTED

  READ_COMMITTED

  REPEATABLE_READ

  SERIALIZABLE

  从上往下,级别越来越高,并发性越来越差,安全性越来越高。

二、事务所面临的问题

  定义的事务的隔离级别是为了解决数据在高并发下产生的问题:Dirty Read(脏读)、Unrepreatable Read(不可重复读)、Phantom Read(幻读)

脏读示例

  

不可重复读

  

幻读

  

概述

  脏读:事务A读取了事务B未提交的数据,并在这个基础上又做了其他操作

  不可重复读:事务A读取了事务B已提交的更改数据

  幻读:事务A读取了事务B已提交的新增数据

结论:不允许脏读,后两条大多数情况不考虑。

   

JDBC也提供了四类事务隔离级别。mysql默认是READ_COMMITTED。

  其他可以通过代码查看  

DatabaseMetaData metaData = DBUtil.getConnection().getMetaData();        int defaultTransactionIsolation = metaData.getDefaultTransactionIsolation();

数据库隔离事务,其实是锁。插入数据时,就锁定表,锁表。更新数据时,就是锁行。

    

转载地址:http://rtdfm.baihongyu.com/

你可能感兴趣的文章
halt
查看>>
标准ACL+扩展ACL+命名ACL
查看>>
Meteor应用的启动过程分析
查看>>
九曲黄河万里沙,浪淘风簸自天涯 — 正则表达式
查看>>
欲哭无泪,联想笔记本性价比
查看>>
很简单的在Ubuntu系统下安装字体和切换默认字体的方法
查看>>
我的友情链接
查看>>
dojo框架用hitch实现函数与上下文的绑定
查看>>
ubuntu编译安装vim7.4
查看>>
python之利用PIL库实现页面的图片验证码及缩略图
查看>>
IP-COM设置×××
查看>>
VPC配置案例
查看>>
十年IT运维谈(五):要专业化还是平台化?
查看>>
分享超级给力的一个外发光Shader
查看>>
oblog_4.6_SQL 语句
查看>>
通过Git WebHooks+脚本实现自动更新发布代码之shell脚本
查看>>
对象实例化、字符串的使用方法
查看>>
keepalived基于LVS实现高可用,实现web服务的高可用
查看>>
80端口被Microsoft-HTTPAPI/2.0占用的解决办法
查看>>
无法抗拒Minecraft给予超高的自由度和探索-微访谈
查看>>