show processlit —> 查看并发连接(多个会话)
事务具有四个特性:传统关系型数据库都是支持事务的,事务也是OLTP业务的核心
ACID
原子性:原子是不可切分的,事务是不可切分的。
在一个事务中,存在多个操作,这些操作属于一个事务的,这些操作要么都成功,要么都失败。
持久性:一旦事务提交,数据就实现了持久化
持久化—>硬盘上的数据持久化—》数据持久化 脏页落盘(数据量大,随机IO)—》redo log(日志落盘 ) binlog (日志落盘)
一致性:事务执行前后,结果不影响数据约束(非空约束,唯一约束,主键约束,外键约束)
隔离性:保证事务之间互不影响(通过锁来实现)
未提交的事务修改的数据,不应该被查看或者修改
锁:(锁的粒度分类)
表级锁: 表锁
页级锁: 页锁
行级锁: 行锁
当前传统关系型数据库都是支持行锁的。
事务的隔离性,是通过锁机制来实现。
事务的原子性,一致性,持久性,通过redo 和undo 来实现
事务的隔离性
Mysql,四种隔离级别—》InnoDB存储引擎
| 隔离级别 | 中文事务 | 可能造成的问题 | 缩写 |
|---|---|---|---|
| READ UNCOMMITED | 未提交读 | 脏读 | RU |
| READ COMMITED | 提交读 | 幻读 | RC |
| REPEATEABLE READ(repeateable) | 可重复读 | RR | |
| SERIALIZABLE | 序列化 |
隔离级别,自上而下增强。
查看当前mysql的隔离级别:show variables like '%isolation%'
#设置mysql隔离级别#全局修改set global transaction isolation level [read uncommited|read commited|repeateable read]#会话修改set session transaction isolation level [read uncommited|read commited|repeateable read]#自动提交set autocommit = [1/on ,0/off] #会话修改
Mysql 隔离级别
1.RU read commited 读未提交(脏读)
