事务的四大特征:
- 原子性:事务是一个整体,不可分割,要么同时成功,要么同时失败
- 持久性:当事务提交或回家后,数据库会持久化的保存数据
- 隔离性:多个事务之间,隔离开,相互独立
- 一致性:事务操作的前后,数据总量不变
关于脏读,幻读,不可重复读:
脏读:读取到了一个事务未提交的数据
不可重复读:一个事务中,两次连续的读取,结果不一致(中间被其他事务更改了)
幻读:一个事务A在执行DML语句时,另一个事务B也在执行DML语句,B修改了A修改过的数据,导致A在查询时就像发生了幻觉一样(A更改的内容A看不到了)
事务的隔离级别:
//三种级别锁:页级,表级,行级(共享锁,排它锁)
- 读未提交:可能产生脏读,不可重复读,幻读(read uncommitted)
- 读已提交:可能产生不可重复读,幻读(read committed)
- 可重复读:幻读(repeatable read,mysql默认值)
- 串行化:serializable