事务
...大约 2 分钟
事务
什么是事务?Mysql的事务隔离级别有哪些?
事务:指一组作为一个单一工作单元执行的操作,这些操作要么全部执行,要么全部不执行
Mysql的事务隔离级别
- 读未提交:一个事务还未提交时可以被别的事务读取数据
- 读已提交:一个事务提交之后,所做的变更可以被其他事务看到
- 可重复度:事务在执行中用到的数据与最开始所看到的数据是一样的,默认的隔离级别
- 串行化:会对记录加上读写锁,在多个事务对这条记录进行读写操作时,如果发生了读写冲突,后访问的事务必须等前一个事务执行完成,才能继续执行
脏读、幻读、不可重复读
- 脏读:指一个事务读到另一个事务未提交的且修改过的数据
- 幻读:指一个事务在两次查询之间,令一个事务插入了新的数据行,导致前后查询的数据不一致
- 不可重复读:指一个事务多次读取同一数据,过程中,另一个事务对该数据进行了修改或删除,导致前一次读取和后一次读取的结果不一致
这些隔离级别会引发哪些问题?解决了哪些问题?
- 读未提交:三个问题都会引发
- 读已提交:解决了脏读,在该隔离级别下,事务只能读取到其他事务提交的数据,不可能读到其他事务未提交的数据
- 可重复读:解决了脏读和不可重复读,没解决幻读
- 串行化:三个问题都解决了