MySQL InnoDB 存储引擎的默认支持的隔离级别是 REPEATABLE-READ(可重读)。
命令SELECT @@transaction_isolation;
查看数据库隔离级别。
InnoDB可以通过应用加锁读(例如 select * from table for update
语句)来保证不会产生幻读,而这个加锁度使用到的机制就是 Next-Key Lock 锁算法。从而达到了 SQL 标准的 SERIALIZABLE(可串行化) 隔离级别。
如何显示的开启事务:
START TARNSACTION
|BEGIN
显示开启一个事务
COMMIT
提交事务
ROLLBACK
回滚,撤销为提交的操作
READ-UNCOMMITTED(读取未提交):
设置数据库事务的隔离级别为read uncommited
READ-COMMITTED(读取已提交):
设置数据库隔离级别:
这样就会发生不可重复的问题,即在同一个事务里读取到的数据不一样
REPEATABLE-READ(可重复读):
设置数据库隔离级别