mysql事物隔离
1、读未提交(行锁)
会发生脏读,事物未提交被其他事物看到,未提交的数据为脏数据。
2、读已提交(行锁)
会发生不可重复读,事物开始时,只能看到已经提交了的事物修改。
3、重复读(行锁)
该级别保证了同一事务中多次读取到的同样记录的结果是一致的,但无法解决幻读现象。
4、序列化(表锁)
表锁级别,读也会阻塞。只有前一事物完成才会执行下一个事物。
不可重复读和幻读的却别在于:
不可重复读重在uodate和delete,而幻读重在insert。
mysql在3级别解决了幻读的现象,是由于采取了一种next-key的锁。
三种锁:间隙锁,记录锁,next-key。
next-key是前两者的混合模式。锁定目标索引记录和一定范围内的行。