1.mysql事务隔离级别
1.1读未提交 read uncommitted
1.2读提交 read committed
1.3可重复读 repeatable read
1.4 串行化 serializable
1.1 读未提交,是指一个事务还未提交,他做的变更可以被别的事务看到。
1.2 读提交,一个事务,提交后,才可以被别的事务看到。
1.3 可重复读,一个事务在执行的过程中,不管何时,看到的数据总是跟他启动时看到的数据一致。
1.4 串行化,顾名思义,是对同一行数据会加读/写锁。当出现读写锁冲突时,后访问的事务必须等前一个事务执行完成,才可以继续执行。
2.如何实现事务隔离
不同时刻启动的事务,会有不同的 read-view,同一条记录在系统中可以存在多个版本,就是数据库的多版本并发控制MVCC。
相当于每次增删改操作都会有一个版本记录。
当mysql 开启一个事务 begin 或 start transaction。
此时会得到一个事务id,该事务只能看到比自己事务id小的事务。(读已提交隔离级别)