zoukankan      html  css  js  c++  java
  • Firebird 事务隔离级别

    各种RDBMS事务隔离都差不多,Firebird 中大致分为3类: CONCURRENCY、READ_COMMITTED、CONSISTENCY。

    在提供的数据库驱动里可设置的事务隔离级别大致如下3类,按严格性,从低到高:并发性、读提交、一致性。

    ----------------------------------------------------------------------
    (CONCURRENCY | NOWAIT | READ_WRITE) => Snapshot
    
    (CONCURRENCY | NOWAIT | READ_WRITE) => RepeatableRead
    ----------------------------------------------------------------------
    (READ_COMMITTED | REC_VERSION | NOWAIT | READ_WRITE) => ReadCommitted
    
    (READ_COMMITTED | REC_VERSION | NOWAIT | READ_WRITE) => ReadUncommitted
    
    (READ_COMMITTED | REC_VERSION | NOWAIT | READ_WRITE) => Chaos
    
    (READ_COMMITTED | REC_VERSION | NOWAIT | READ_WRITE) => Unspecified
    ----------------------------------------------------------------------
    (CONSISTENCY | NOWAIT | READ_WRITE) => Serializable
    ----------------------------------------------------------------------

    第一种 CONCURRENCY 并发性事务隔离。

    主要针对读数据,读取的是快照,即事务1按照此级别读表A第一条记录时,事务2也对表A的第一条记录修改了  并提交,此时事务1再次刷新读取(保持原事务),仍然读取到的是第一次的快照信息,并没有读取到事务2更新信息。

    第二种 READ_COMMITTED 读提交事务隔离。

    即在第一种情况的基础上,事务1再次刷新读取,即可读取到事务2的更新信息。也就是说事务1在不提交和回滚事务的情况下,刷新即可读取事务2的修改信息。

    第三种 CONSISTENCY 一致性事务隔离。

    这种隔离级别是最严格的,它会对整个表上锁。假如事务1在此级别读取表A第一条记录,事务2不管以什么隔离级别再修改或删除 表A的任意记录 ,都是不允许,但是事务2可以查看。

  • 相关阅读:
    springboot配置视图控制器
    springboot测试的方法
    cookie之sameSite
    docker 安装Elasticsearch +kibana
    find + xargs 删除文件名中含有空格的文件
    git,composer 代理
    Composer更新依赖报错Fatal error解决方案
    compose 设置代理 SET HTTP_PROXY="http://192.168.1.103:8080"
    php使用composer常用问题及解决办法集:zlib_decode():data error......
    ERROR: .FileNotFoundError: [Errno 2] No such file or directory: '.\docker-compose.yml:docker-compose.apache.yml'
  • 原文地址:https://www.cnblogs.com/jonney-wang/p/11201526.html
Copyright © 2011-2022 走看看