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%'

  1. #设置mysql隔离级别
  2. #全局修改
  3. set global transaction isolation level [read uncommited|read commited|repeateable read]
  4. #会话修改
  5. set session transaction isolation level [read uncommited|read commited|repeateable read]
  6. #自动提交
  7. set autocommit = [1/on ,0/off] #会话修改

Mysql 隔离级别
1.RU read commited 读未提交(脏读)