事务的特征ACID,即原子性、一致性、隔离性、持久性。
原子性保证一个事务为一个最小的单元,内部不可分割
一致性保证事务中的每个操作线程不可单独提交,成功则一起提交,不成功则事务回滚
隔离性保证不同事务间看到的数据视图相互独立,相互隔离(隔离级别可设置)
持久性保证事务提交后数据会持久的保存下来。
数据库隔离级别有四种——《高性能mysql》
另外还有一种情况:丢失更新(Lost Update),事务A和B都更新数据d1,A提交后B回滚了,这时A看到它的修改没有生效,丢失了。读未提交(read uncommitted)可以避免此类情况。
MySql的锁简述
根据类型可分为共享锁(SHARED LOCK)和排他锁(EXCLUSIVE LOCK)或者叫读锁(READ LOCK)和写锁(WRITE LOCK)。
根据粒度划分又分表锁和行锁。表锁由数据库服务器实现,行锁由存储引擎实现。
共享锁
共享锁的锁粒度是行或者元组(多个行)。一个事务获取了共享锁之后,可以对锁定范围内的数据执行读操作。
排它锁
排它锁的粒度与共享锁相同,也是行或者元组。一个事务获取了排它锁之后,可以对锁定范围内的数据执行写操作。
假设有两个事务t1和t2
如果事务t1获取了一个元组的共享锁,事务t2还可以立即获取这个元组的共享锁,但不能立即获取这个元组的排它锁(必须等到t1释放共享锁之后)。
如果事务t1获取了一个元组的排它锁,事务t2不能立即获取这个元组的排共享锁,也不能立即获取这个元组的排它锁(必须等到t1释放排它锁之后)。
相关推荐
在SQL标准中定义了四种隔离级别, 每一个事务中所做的修改,哪些在事务内和事务间是可见的,哪些是不可见的。较低级别的隔离通常可以执行更高的并发,系统的开销也更低。 下面简单地介绍一下四种隔离级别。 1.READ ...
MySQL的锁主要分为表级锁、行级锁和页面锁,不同存储引擎支持不同的锁类型。 表级锁是MySQL中最简单的锁机制,如MyISAM和MEMORY存储引擎采用的就是这种锁。表级锁在开销、加锁速度以及并发度上具有特定特点:开销小...
## 最全MySQL面试60题和答案 #### 1.Mysql中有哪几种锁? 1. 表级锁:开销小,加锁快;不会出现死锁;锁定粒度大,发生锁冲突的概率最高,并发度最低。...支持ACID的事务,支持事务的四种隔离级别; 支持行级锁及外键
10.MySQL 中 InnoDB 支持的四种事务隔离级别名称,以及逐级之间的区 别?11.表中有大字段 X(例如:text 类型),且字段 X 不会经常更新,以读为 为主,将该字段拆成子表好处是什么?12.MySQL 中 InnoDB 引擎的行锁...
6. **事务处理与并发控制**:介绍事务的概念,ACID属性(原子性、一致性、隔离性和持久性),以及事务的开始、提交、回滚和保存点。讲解锁定机制,如读锁(READ LOCK)、写锁(WRITE LOCK)和行级锁定。 7. **存储...
Oracle还提供了更丰富的SQL功能,如事务的隔离级别和传播特性,这些在MySQL中可能并不完全支持。Oracle的这些高级特性使它在复杂的企业级应用中更具优势。 总的来说,MySQL因其开源、轻量级和易用性而受到中小型...
首先,MySQL 是一个关系型数据库管理系统(RDBMS),它遵循 ACID(原子性、一致性、隔离性和持久性)原则,提供了事务处理、复杂查询和结构化数据存储等功能。MySQL 数据库将数据存储在磁盘上,虽然支持索引加速查询...
用户将学习如何开启、提交和回滚事务,以及理解隔离级别和锁定机制。此外,还会讲解视图、存储过程和触发器的创建与使用,这些高级特性有助于提高代码的复用性和数据库的性能。 索引是提升查询速度的关键,手册会...
1. 数据库概念:了解关系型数据库的基本原理,包括ACID属性(原子性、一致性、隔离性和持久性)。 2. SQL语言:掌握SQL语句,包括SELECT、INSERT、UPDATE、DELETE等,以及子查询、联接、视图、存储过程和触发器的...
- **事务隔离级别**:READ UNCOMMITTED、READ COMMITTED、REPEATABLE READ、SERIALIZABLE。 **问题示例**:“解释ACID特性。” #### 8. 分区 分区是一种将大表物理分割成多个小块的技术。 - **范围分区**:根据...
它提供了四种事务隔离级别,以满足不同场景的需求。 - **行级锁定**:与MyISAM的表级锁定相比,InnoDB支持行级锁定,这大大减少了在并发环境中发生锁定冲突的可能性,提高了多用户环境下的性能。 - **外键支持**:...
- 说明了不同的事务隔离级别如何影响并发插入操作。 - **13.7 如何减少锁冲突** - 提供了一系列减少锁竞争的策略。 **第14章 优化MySQL Server** - **14.1 查看MySQL server当前参数** - 指导如何使用`SHOW ...
#### 六、MySQL事务的四种隔离级别及其特点 - **读未提交(RU)**:一个事务尚未提交时,它所做的更改即可被其他事务查看。 - **读提交(RC)**:一个事务提交后,它所做的更改才会被其他事务看到。 - **可重复读...