首先说明下事务的四种隔离级别:读未提交、读已提交、可重复读、可串行化.
而且,在事务的并发操作中,可能出现脏读、不可重复读、幻读等.
读未提交:一个事务可以读取另一个事务没有提交的数据(**脏读**).
读已提交:一个事务只能读取到另一个事务提交的数据(可以解决脏读,但是一个事务中出现了**更新操作**,会导致数据不可重复读)
可重复读:开始事务后,不再允许修改数据(可以解决不可重复读的问题,但是**可能出现幻读**,比如说新增一条数据).
可串行化:事务串行化执行,可以避免脏读、不可重读读和幻读.
隔离级别的设置只对当前连接有效,对于使用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 的底层存储结构有关,当事务操作的数据部分重叠时才会阻塞,如果不重叠则不会被阻塞.
分享到:
相关推荐
数据库系统通过锁机制、事务隔离级别等技术来实现事务并发的控制,确保多个事务之间不会产生冲突和干扰。 分布式数据库系统是指数据库分布在不同的物理地点,通过网络连接在一起协同工作的系统。分布式数据库系统...
- **事务隔离级别**:确保事务处理过程中数据的一致性和安全性。 - **性能优化**:包括查询优化、存储优化等方面。 #### 三、OLAP系统概述 ##### 3.1 定义及特点 OLAP主要用于数据分析和决策支持,特别是针对历史...
6. 数据库事务与并发控制:理解事务的ACID属性,学习事务的提交、回滚和隔离级别,以及并发控制机制,如锁和多版本并发控制(MVCC)。 7. 数据库安全性与完整性:如何设置用户权限,实现数据的访问控制,以及定义和...
6. 数据库事务与并发控制:了解ACID(原子性、一致性、隔离性和持久性)属性,事务的四种隔离级别,以及死锁的概念和解决策略。 7. 数据库恢复技术:掌握日志系统和检查点的概念,以及如何利用这些机制实现数据库的...
例如,数据库的隔离级别设置可以影响事务的并发性能和一致性。在高并发环境中,合理的隔离级别设置可以减少锁的冲突和死锁,从而提高系统的整体性能。 此外,硬件资源的配置也对数据库性能有直接的影响。如CPU的...
5. 并发控制:事务的概念,隔离级别,死锁及其预防。 6. 数据安全与备份:权限管理、角色、加密技术,以及备份策略和恢复方法。 7. 系统架构:分布式数据库、主从复制、读写分离等概念。 8. 实际案例分析:可能涉及...
通过合理设置缓冲区大小、事务隔离级别等参数,可以有效降低等待时间,提高系统的吞吐量。 ##### 1.3 必须了解的硬件知识 了解底层硬件的工作原理对于数据库优化至关重要。以下是一些关键硬件组件及其在数据库性能...
数据库实验是学习数据库管理和操作的重要实践环节,涵盖了理论与实践的结合,旨在帮助学生深入理解数据库的概念...希望每个实验都能引起大家的深度思考,积极参与讨论,提出宝贵的意见和建议,共同提升数据库技术水平。
- **事务处理**:提供MySQL协议级别的事务支持以及连接绑定的事务处理机制。 - **线性扩展**:能够随着硬件增加而线性提升性能。 - **资源隔离**:根据schema的权重分配资源,实现更合理的负载均衡。 - **高性能...
此外,还需要通过多客户端并发操作来体验并发控制和事务隔离级别,以及了解当客户端突然关闭时对事务的影响。 总的来说,这个实验涵盖了数据库设计、数据完整性、索引优化、触发器应用和事务处理等多个关键领域,...
5. **事务处理**:学习如何使用SQL语句进行事务操作,理解ACID(原子性、一致性、隔离性和持久性)属性,以及并发控制中的锁机制。 6. **备份与恢复**:数据库的安全性和稳定性至关重要。实验可能包含数据库备份...
此外,事务处理和并发控制是课程的重点,包括事务的ACID属性、封锁和隔离级别,以及恢复机制。最后,我们探讨了函数依赖、Armstrong公理和数据库理论,这些都是理解数据库设计和优化的基础。 通过这门课程,我深刻...
- **事务管理**:理解事务的四大特性,知道如何设置隔离级别。 - **存储过程与触发器**:知道如何编写和调用存储过程,理解触发器的作用和使用场景。 4. **数据库进阶**: - **数据库集群与复制**:了解主从复制...
4. **物理结构设计**:考虑数据库的存储和访问效率,设计表的索引、分区、归档策略等,以及可能的优化措施,如选择合适的数据存储引擎、设置适当的事务隔离级别等。这一步涉及数据库性能调优和空间利用。 5. **系统...
- **事务处理**:分析事务的ACID属性、隔离级别及其实现机制。 - **并发控制**:讨论锁机制、死锁检测与避免方法。 - **备份与恢复**:探讨Oracle提供的多种备份和恢复策略,确保数据的安全性和完整性。 - **性能...
21.3 数据库的事务隔离级别 21.3.1 在mysql.exe程序中设置隔离级别 21.3.2 在应用程序中设置隔离级别 21.4 在应用程序中采用悲观锁 21.4.1 利用数据库系统的独占锁来实现悲观锁 21.4.2 由应用程序实现...
21.3 数据库的事务隔离级别 21.3.1 在mysql.exe程序中设置隔离级别 21.3.2 在应用程序中设置隔离级别 21.4 在应用程序中采用悲观锁 21.4.1 利用数据库系统的独占锁来实现悲观锁 21.4.2 由应用程序实现...
21.3 数据库的事务隔离级别 21.3.1 在mysql.exe程序中设置隔离级别 21.3.2 在应用程序中设置隔离级别 21.4 在应用程序中采用悲观锁 21.4.1 利用数据库系统的独占锁来实现悲观锁 21.4.2 由应用程序实现...
21.3 数据库的事务隔离级别 21.3.1 在mysql.exe程序中设置隔离级别 21.3.2 在应用程序中设置隔离级别 21.4 在应用程序中采用悲观锁 21.4.1 利用数据库系统的独占锁来实现悲观锁 21.4.2 由应用程序实现...
MySQL/InnoDB支持四种不同的事务隔离级别: 1. **Read Uncommitted**:允许读取未提交的数据,这种隔离级别通常不建议使用,因为它无法解决脏读的问题。 2. **Read Committed (RC)**:对于当前读操作,在RC隔离级别...