`

数据库事务隔离级别的思考

阅读更多
首先说明下事务的四种隔离级别:读未提交、读已提交、可重复读、可串行化.

而且,在事务的并发操作中,可能出现脏读、不可重复读、幻读等.

读未提交:一个事务可以读取另一个事务没有提交的数据(**脏读**).

读已提交:一个事务只能读取到另一个事务提交的数据(可以解决脏读,但是一个事务中出现了**更新操作**,会导致数据不可重复读)

可重复读:开始事务后,不再允许修改数据(可以解决不可重复读的问题,但是**可能出现幻读**,比如说新增一条数据).

可串行化:事务串行化执行,可以避免脏读、不可重读读和幻读.

隔离级别的设置只对当前连接有效,对于使用MYSQL命令窗口而言,一个窗口就相当于一个连接,当前窗口设置的隔离级别只对当前窗口中的事务有效,对于JDBC操作数据库来说,一个Connection对象相当与一个连接,而对于Connection对象设置的隔离级别只对该Connection对象有效,与其他连接Connection对象无关

下面是我在 MySQL 数据库上的测试过程:

1.新开一个窗口,设置事务的隔离级别,然后在另一个窗口中查看,发现另一个窗口的事务隔离级别还是默认值.

SELECT @@tx_isolation;

set session transaction isolation level serializable;

start transaction;

insert into test values(1, 'pp2');

commit;

select * from test;

2.插入一条数据前开启事务,但是不提交,在另一个窗口中也插入一条数据,发现数据能插入进去,但是如果执行查询语句的话,则会被阻塞.

原因是和 MySQL 的底层存储结构有关,当事务操作的数据部分重叠时才会阻塞,如果不重叠则不会被阻塞.
0
0
分享到:
评论

相关推荐

    高级数据库技术课程笔记

    数据库系统通过锁机制、事务隔离级别等技术来实现事务并发的控制,确保多个事务之间不会产生冲突和干扰。 分布式数据库系统是指数据库分布在不同的物理地点,通过网络连接在一起协同工作的系统。分布式数据库系统...

    OLTP与OLAP系统数据库建模思考与实践

    - **事务隔离级别**:确保事务处理过程中数据的一致性和安全性。 - **性能优化**:包括查询优化、存储优化等方面。 #### 三、OLAP系统概述 ##### 3.1 定义及特点 OLAP主要用于数据分析和决策支持,特别是针对历史...

    04735数据库系统原理_2022年4月线上实践题(含答案、自学考试大纲)

    6. 数据库事务与并发控制:理解事务的ACID属性,学习事务的提交、回滚和隔离级别,以及并发控制机制,如锁和多版本并发控制(MVCC)。 7. 数据库安全性与完整性:如何设置用户权限,实现数据的访问控制,以及定义和...

    数据库考试模拟卷及习题

    6. 数据库事务与并发控制:了解ACID(原子性、一致性、隔离性和持久性)属性,事务的四种隔离级别,以及死锁的概念和解决策略。 7. 数据库恢复技术:掌握日志系统和检查点的概念,以及如何利用这些机制实现数据库的...

    基于SQL Server数据库查询优化的几点思考.pdf

    例如,数据库的隔离级别设置可以影响事务的并发性能和一致性。在高并发环境中,合理的隔离级别设置可以减少锁的冲突和死锁,从而提高系统的整体性能。 此外,硬件资源的配置也对数据库性能有直接的影响。如CPU的...

    中级数据库系统工程师2006上半年试题 含答案.zip

    5. 并发控制:事务的概念,隔离级别,死锁及其预防。 6. 数据安全与备份:权限管理、角色、加密技术,以及备份策略和恢复方法。 7. 系统架构:分布式数据库、主从复制、读写分离等概念。 8. 实际案例分析:可能涉及...

    数据库系统的优化与调优:从理论到实践

    通过合理设置缓冲区大小、事务隔离级别等参数,可以有效降低等待时间,提高系统的吞吐量。 ##### 1.3 必须了解的硬件知识 了解底层硬件的工作原理对于数据库优化至关重要。以下是一些关键硬件组件及其在数据库性能...

    数据库的实验1到10

    数据库实验是学习数据库管理和操作的重要实践环节,涵盖了理论与实践的结合,旨在帮助学生深入理解数据库的概念...希望每个实验都能引起大家的深度思考,积极参与讨论,提出宝贵的意见和建议,共同提升数据库技术水平。

    【Hadoop与大数据38】构建生态化分布式数据库架构体系(陶勇)

    - **事务处理**:提供MySQL协议级别的事务支持以及连接绑定的事务处理机制。 - **线性扩展**:能够随着硬件增加而线性提升性能。 - **资源隔离**:根据schema的权重分配资源,实现更合理的负载均衡。 - **高性能...

    北邮数据库实验三[整理].pdf

    此外,还需要通过多客户端并发操作来体验并发控制和事务隔离级别,以及了解当客户端突然关闭时对事务的影响。 总的来说,这个实验涵盖了数据库设计、数据完整性、索引优化、触发器应用和事务处理等多个关键领域,...

    数据库实验二.rar

    5. **事务处理**:学习如何使用SQL语句进行事务操作,理解ACID(原子性、一致性、隔离性和持久性)属性,以及并发控制中的锁机制。 6. **备份与恢复**:数据库的安全性和稳定性至关重要。实验可能包含数据库备份...

    数据库课程学习总结.docx

    此外,事务处理和并发控制是课程的重点,包括事务的ACID属性、封锁和隔离级别,以及恢复机制。最后,我们探讨了函数依赖、Armstrong公理和数据库理论,这些都是理解数据库设计和优化的基础。 通过这门课程,我深刻...

    Java+数据库面试题!!!!!!!

    - **事务管理**:理解事务的四大特性,知道如何设置隔离级别。 - **存储过程与触发器**:知道如何编写和调用存储过程,理解触发器的作用和使用场景。 4. **数据库进阶**: - **数据库集群与复制**:了解主从复制...

    数据库原理附应用课程设计资产管理系统方案.doc

    4. **物理结构设计**:考虑数据库的存储和访问效率,设计表的索引、分区、归档策略等,以及可能的优化措施,如选择合适的数据存储引擎、设置适当的事务隔离级别等。这一步涉及数据库性能调优和空间利用。 5. **系统...

    Oracle 9i&10g编程艺术-深入数据库体系结构(前13章)

    - **事务处理**:分析事务的ACID属性、隔离级别及其实现机制。 - **并发控制**:讨论锁机制、死锁检测与避免方法。 - **备份与恢复**:探讨Oracle提供的多种备份和恢复策略,确保数据的安全性和完整性。 - **性能...

    精通 Hibernate:Java 对象持久化技术详解(第2版).part4

     21.3 数据库的事务隔离级别  21.3.1 在mysql.exe程序中设置隔离级别  21.3.2 在应用程序中设置隔离级别  21.4 在应用程序中采用悲观锁  21.4.1 利用数据库系统的独占锁来实现悲观锁  21.4.2 由应用程序实现...

    精通 Hibernate:Java 对象持久化技术详解(第2版).part2

     21.3 数据库的事务隔离级别  21.3.1 在mysql.exe程序中设置隔离级别  21.3.2 在应用程序中设置隔离级别  21.4 在应用程序中采用悲观锁  21.4.1 利用数据库系统的独占锁来实现悲观锁  21.4.2 由应用程序实现...

    精通 Hibernate:Java 对象持久化技术详解(第2版).part3

     21.3 数据库的事务隔离级别  21.3.1 在mysql.exe程序中设置隔离级别  21.3.2 在应用程序中设置隔离级别  21.4 在应用程序中采用悲观锁  21.4.1 利用数据库系统的独占锁来实现悲观锁  21.4.2 由应用程序实现...

    精通 Hibernate:Java 对象持久化技术详解(第2版).part1.rar

     21.3 数据库的事务隔离级别  21.3.1 在mysql.exe程序中设置隔离级别  21.3.2 在应用程序中设置隔离级别  21.4 在应用程序中采用悲观锁  21.4.1 利用数据库系统的独占锁来实现悲观锁  21.4.2 由应用程序实现...

    MySQL学习笔记——叶志镔.pdf

    MySQL/InnoDB支持四种不同的事务隔离级别: 1. **Read Uncommitted**:允许读取未提交的数据,这种隔离级别通常不建议使用,因为它无法解决脏读的问题。 2. **Read Committed (RC)**:对于当前读操作,在RC隔离级别...

Global site tag (gtag.js) - Google Analytics