简单记录下mysql事务的几种事务隔离级别中,有关脏读,不可重复读,幻读等。
SELECT @@GLOBAL.tx_isolation, @@tx_isolation;
修改mysql事务隔离级别
语法为:
SET [GLOBAL | SESSION] TRANSACTION ISOLATION LEVEL level
level: {
? REPEATABLE READ
| READ COMMITTED
| READ UNCOMMITTED
| SERIALIZABLE
}
set global transaction isolation level read committed;
set session transaction isolation level read committed;
或
SET GLOBAL tx_isolation='REPEATABLE-READ';
SET SESSION tx_isolation='SERIALIZABLE';
mysql数据库事务的隔离级别有4个,由低到高依次为Read uncommitted、Read committed、Repeatable read、Serializable
即读取到的数据是脏的,比如A事务读取了B事务还未提交的数据,这时候B事务出错或回滚了,那么A事务读的数据就是脏的。
多次读取同一条数据有可能返回不一样,比如A事务读取到了B事务更新的数据(update),造成前后两次数据不一样。
如A事务读取到了B事务新增(insert)的数据。两次读取返回的记录数不一样。
原文:https://www.cnblogs.com/smartrui/p/11889862.html