`

数据库的隔离级别

阅读更多

数据库的隔离级别

在标准SQL规范中,定义了4个事务隔离级别,不同的隔离级别对事务的处理不同。


● 未授权读取(Read Uncommitted):允许脏读取,但不允许更新丢失。如果一个事务已经开始写数据,则另外一个数据则不允许同时进行写操作,但允许其他事务读此行数据。该隔离级别可以通过“排他写锁”实现。


● 授权读取(Read Committed):允许不可重复读取,但不允许脏读取。这可以通过“瞬间共享读锁”和“排他写锁”实现。读取数据的事务允许其他事务继续访问该行数据,但是未提交的写事务将会禁止其他事务访问该行。


● 可重复读取(Repeatable Read):禁止不可重复读取和脏读取,但是有时可能出现幻影数据。这可以通过“共享读锁”和“排他写锁”实现。读取数据的事务将会禁止写事务(但允许读事务),写事务则禁止任何其他事务。


● 序列化(Serializable):提供严格的事务隔离。它要求事务序列化执行,事务只能一个接着一个地执行,但不能并发执行。如果仅仅通过“行级锁”是无法实现事务序列化的,必须通过其他机制保证新插入的数据不会被刚执行查询操作的事务访问到。

1. 未提交读(READ UNCOMMITED)。事务隔离的最低级别,仅可保证不读物理损坏的数据。


2. 提交读(READ COMMITED)。SQL Server的默认级别,可以保证不读"脏"数据,但会发生不可重复读。


3. 可重复读(REPEATABLE READ)。可以保证读一致性,防止不可重复读现象的发生,但会发生幻象读。


4. 可串行化(SERIALIZABLE)。事务隔离的最高级别,事务之间完全隔离,在该级别上可以保证并发事务均是可串行的。在该隔离级别上不会发生幻象读。

这些隔离级别按照隔离程度有小到大排序,隔离程度越大,隔离效果越好,可保证数据的正确性,但并发度小;隔离程度越小,隔离效果越差,越容易发生数据不一致现象,但并发度较大。

分享到:
评论

相关推荐

    oracle 数据库隔离级别学习

    Oracle 数据库隔离级别是数据库事务处理中的核心概念,它决定了事务在并发环境下如何访问和处理数据,以确保数据的一致性和完整性。隔离级别主要解决的是并发操作中的脏读、不可重复读和幻读问题。 脏读(Dirty ...

    数据库隔离级别扫描.pdf

    数据库隔离级别是数据库管理系统中用于控制事务之间交互作用的一个关键特性,它旨在解决并发操作中可能出现的数据不一致性和并发问题。在数据库系统中,主要有四种隔离级别,分别是Read Uncommitted、Read Committed...

    MySQL数据库隔离级别1.txt

    MySQL数据库隔离级别

    数据库隔离级别的选择与实现.md

    数据库隔离级别的选择与实现

    数据库隔离级别与脏读、幻读的深入解析.md

    数据库隔离级别与脏读、幻读的深入解析

    MySQL数据库:事务隔离级别.pptx

    事务隔离级别 课程目标 了解 —— 事务隔离级别的概念; 理解 —— 事务隔离的四种级别; 掌握 —— 事务隔离级别的设置; 事务隔离级别 事务隔离:每一个事务都有一个所谓的隔离级,它定义了用户彼此之间隔离和交互...

    数据库的隔离级别介绍

    总的来说,数据库隔离级别的选择是一个权衡过程,需要在数据一致性、并发性和性能之间找到合适的平衡点。在设计数据库系统和应用程序时,理解这些隔离级别及其可能产生的效果至关重要,以便做出最佳决策。

    数据库事务和隔离级别

    数据库事务和隔离级别

    数据库锁和数据库隔离级别

    近突然发现忘了数据库锁和数据库隔离级别,时常弄混它们之间的关系。为此特此写下此博客,以方便自己复习,同时也可以帮助博友。  数据库锁  数据库锁是事务T在对某个数据对象(例如表、记录等)操作之前,先向...

    mysql+Spring数据库隔离级别与性能分析

    数据库隔离级别是数据库管理系统在并发环境下确保事务一致性和数据完整性的关键设置。Spring框架与MySQL数据库结合使用时,可以通过配置事务管理器来控制事务的隔离级别,以达到优化性能和保证数据一致性。以下是对...

    GBase 8s隔离级别

    GBase 8s 是一款高性能的关系型数据库管理系统,它提供了多种隔离级别来处理并发事务,以确保数据的一致性和完整性。隔离级别是数据库系统解决并发控制的重要机制,它定义了事务在执行过程中如何与其他事务交互,...

    数据库事务隔离级别

    介绍数据库事务的四种隔离级别,比较不同隔离级别的区别和影响

    GBase8s_隔离级别.docx

    GBase8s_隔离级别.docx

    JDBC事务 JTA事务 传播特性 隔离级别

    数据库系统提供了不同的隔离级别来控制这种影响: - **未提交读(Read Uncommitted)**:最低的隔离级别,允许读取未提交的数据,可能导致脏读、不可重复读和幻读。 - **提交读(Read Committed)**:在提交后才...

    MY SQL 事务隔离 查询:默认事务隔离级别

    查询:默认事务隔离级别 mysql> select @@tx_isolation;当前会话的默认事务隔离级别 mysql> select @@session.tx_isolation;当前会话的默认事务隔离级别 mysql> select @@global.tx_isolation;全局的事务隔离级别

Global site tag (gtag.js) - Google Analytics