名词解释:在一个事务中,同一个查询语句在不同的时间点查到之前没有过的行,称之为幻读。(期间另外一个事务,删除或者新增了相同搜索条件的数据)
事务的隔离级别
读未提交:一个事务还未提交时,所做的更新操作,会被其他事务看到
读提交:一个事务提交之后,所做的更新操作,才会被其他事务看到
可重复读:一个事务执行过程中看到的数据,总是跟这个事务启动时看到的数据一致
串行化:对于同一个记录进行操作的时候,对读操作会上“读”锁,对写操作会上“写”锁,
当出现读写锁冲突的时候,后一个锁需要等前一个锁释放掉才能操作。
可重复读隔离级别中: 如果快照读和当前读混用,会造成幻读。
注意:
begin/start transaction 命令并不是一个事务的起点,在执行到它们之后的第一个操作InnoDB表的语句,事务才真正启动。如果你想要马上启动一个事务,可以使用start transaction with consistent snapshot 这个命令。
第一种启动方式,一致性视图是在执行第一个快照读语句时创建的; 第二种启动方式,一致性视图是在执行start transaction with consistent snapshot时创建的。
