• 事务-----四大特性


    事务的第一大特性:原子性(Atomicity)它指一个事务中的所有操作要么都发生,要么都不发生,举个例子,对于银行转账,收款方和发款方必须同时加减同样的money,要么同时加减,要么都不加不减;

    事务的第二大特性:一致性(Consistency)指在事务中,所有的数据必须保持完整,对于上述的银行转账,不管怎么转账,总钱数是不会变的;

    事务的第三大特性:隔离性(Isolation)指多个用户并发访问数据库时,用户之间的事务不可以互相干扰,而且多个并发事务之间的数据要相互隔离.否则会产生一些问题,如脏读:一个事务读到了另一个事务未提交的数据,A和B说给他转账成功了,但是A没有提交,这时A可以回滚然后就出现问题了.

    事务的第四大特性:持久性(Durability)指一个事务一旦被提交,它的所有对数据库数据的操作是永久性变化的,接下来不管数据库本身有什么操作都不会对它由任何影响.

    隔离级别:解决问题

    脏读:一个事务读到了另一个事务未提交的数据

    不可重复读:一个事务读到了另一个事务已经提交的数据,引发另一个事务,在事务中的多次查询结果不一致

    虚读/幻读:一个事务读到了另一个事务已经提交的数据.导致另一个事务在事务中多次的查询结果不一致.

    1.read uncommitted 读未提交,一个事务读到另一个事务没有提交的数据

    存在:3个问题(脏读,不可重复读,虚读)

    解决(0个问题)

    2.read committed 读已提交,一个事务读到另一个事务已经提交的数据

    存在:2个问题(不可重复读,虚读)

    解决:1个问题(脏读)

    3.repeatable read 可重复读,在一个事务中读到的数据始终保持一致,无论另一个事务是否提交

    存在:1个问题(虚读)

    解决:2个问题(脏读,不可重复读)

    4.serializable 串行化  ,同时只能执行一个事务,相当于事务中的单线程

    存在:0个问题

    解决:3个问题((脏读,不可重复读,虚读)

    常见数据库的默认隔离级别:

    MySql: repeatable read

    Oracle:read  committed

  • 相关阅读:
    VS2017专业版和企业版激活密钥
    jquery 中的回调函数,回调函数(callback)是什么?
    artDialog
    MVC 5 视图之公用代码
    联想服务器thinkserver rd650安装 windows server 2008 r2
    c#类库中使用Session
    C#导出Excel按照指定格式设置单元格属性值
    visual studio 2017使用NHibernate4.0连接oracle11g数据库
    NHibernate连接oracle报错
    第五章 面向方面编程___通知类型
  • 原文地址:https://www.cnblogs.com/wqdyxnbd/p/7501632.html
Copyright © 2020-2023  润新知