-
事务简介
- 主要用于处理操作量大,复杂度高的数据
- 事务是一组操作的集合,是一个不可分割的工作单位
- 只有使用了Innodb数据库引擎的数据库或表才支持事务
- 事务处理可以用来维护数据库的完整性,保证成批的SQL语句要么全部执行,要么全部不执行
-
事务操作
/* 查看/设置事务提交方式 */ SELECT @@autocommit; SET @@autocommit=0; /* 开启事务 */ START TRANSACTION; #或者 START BEGIN; /* 提交事务 */ COMMIT; /* 回滚事务 */ ROLLBACK;
-
事务四大特性(ACID)
- 原子性(Atomicity):事务是不可分割的最小操作单元,要么全部成功,要么全部失败
- 一致性(Consistency):事务完成时,必须使所有的数据都保持一致的状态
- 隔离性(Isolation):数据库系统提供的隔离机制,保证事务在不受外部并发操作影响的独立环境下运行
- 持久性(Durability):事务一旦提交或回滚,它对数据库中的数据的改变使永久的
-
并发事务问题
问题 描述 脏读 一个事务读到另外一个事务还没有提交的数据 不可重复读 一个事务先后读取同一条记录,但两次读取的数据不同 幻读 一个事务按照条件查询数据时,没有对应的数据行,但是在插入数据时,又发现这行数据已经存在 -
事务隔离级别
隔离级别 脏读 不可重复读 幻读 Read uncommitted √ √ √ Read committed × √ √ Repeatable Read(默认) × × √ Serializable × × × /* 查看事务隔离级别 */ SELECT @@TRANSACTION_ISOLATION; /* 设置事务隔离级别 */ SET [SESSION|GLOBAL] TRANSACTION ISOLATION LEVEL {READ UNCOMMITTED | READ COMMITTED | REPEATABLE READ | SERIALIZABLE}
MySQL-事务
最新推荐文章于 2025-03-19 10:26:54 发布