zoukankan      html  css  js  c++  java
  • Java基础——事务

    一、事务

    简单点说,事务就是一件事情。所有与事务相关的内容都是围绕这一件事情展开的。

    二、事务的特性:ACID

    A:Atomicity(原子性),事务必须是一个不可分割的整体。

    C:Consistency(一致性),执行完数据库操作后,数据不会被破坏。如:从 A 账户转账到 B,要保证 A 账户扣钱后,B 账户能增加对应的钱数。

    I:Isolation(隔离性),多个人对同一条数据同时进行操作时,若不加以控制,会产生非常大的麻烦。而这个控制就是指隔离性。

    D:Durability(持久性),若执行一条 insert 语句,数据库必须保证一条数据永久地存放到数据库中。

    事务的 ACID 特性,都是为了保证数据的一致性。隔离性是保证事务一致性的手段。

    三、事务的隔离级别(Transanction Isolation Level)

    上面说过,事务的隔离性。所说的控制,就是指这里的隔离级别。

    (1)READ_UNCOMMITED:读未提交

    (2)READ_COMMITED:读已提交

    (3)REPEATABLE_READ:可重复读

    (4)SERIALIZABLE:

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

    四、事务中存在的问题

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

    (2)不可重复读——事务 A 读取了事务 B 已提交的更改数据。

    (3)幻读——事务 A 读取事务 B 已提交的新增的数据。

    不论是在什么情况下,脏读都是不被允许的。

    五、事务的隔离级别与事务中存在的问题的对应关系

    其实事务的隔离级别的存在本身就是为了解决事务中出现的问题。

    MySQL 默认的隔离级别为 READ_COMMITED。

    需要提醒的是,这里所说的事务隔离级别规范是 JDBC 提出来的。

    到数据库级,隔离级别是通过锁来控制的,当插入数据时,锁定表,叫“锁表”。当更新数据时,锁定行,叫“锁行”。

    六、总结为一张图

  • 相关阅读:
    bzoj3505 数三角形 组合计数
    cogs2057 殉国 扩展欧几里得
    cogs333 荒岛野人 扩展欧几里得
    bzoj1123 BLO tarjan求点双连通分量
    poj3352 road construction tarjan求双连通分量
    cogs1804 联合权值 dp
    cogs2478 简单的最近公共祖先 树形dp
    cogs1493 递推关系 矩阵
    cogs2557 天天爱跑步 LCA
    hdu4738 Caocao's Bridge Tarjan求割边
  • 原文地址:https://www.cnblogs.com/solverpeng/p/5720306.html
Copyright © 2011-2022 走看看