标签:消息队列 sql values 修改 理论 var nsa 引擎 table
transaction_isolation
tx_isolation
GLOBAL
和SESSION
show [GLOBAL|SESSION] VARIABLES like ‘transaction_isolation‘
SElECT @@transation_isolation
SET [SESSION|GLOBAL] transaction_isolation=[0|1|2|3]
问题:出现脏数据
问题:不可重复读
问题:幻读
-- 事务一
BEGIN;
SELECT * FROM table00;
/*
查询结果:
|id|name|
|-|-|
|1|wu|
*/
-- 此时系统遇到并发,首先执行完事务二
INSERT INTO table00 VALUES(2,"we"); -- 执行失败
SELECT * FROM table00;
/*
查询结果不变:(可重复读但出现幻觉——明明不存在却无法插入)
|id|name|
|-|-|
|1|wu|
*/
COMMIT;
-- 事务二
BEGIN;
SELECT * FROM table00;
/*
查询结果:
|id|name|
|-|-|
|1|wu|
*/
INSERT INTO table00 VALUES(2,"we"); -- 插入
SELECT * FROM table00;
/*
查询结果: (成功插入)
|id|name|
|-|-|
|1|wu|
|2|we|
*/
COMMIT;
这是最高的隔离级别,它通过强制事务排序,使之不可能相互冲突。换言之,它会在每条select语句后自动加上lock in share mode,为每个查询操作施加一个共享锁。在这个级别,可能导致大量的锁等待现象。该隔离级别主要用于InnoDB存储引擎的分布式事务。
【holm】MySQL事务隔离级别以及并发情况下出现的常见问题
标签:消息队列 sql values 修改 理论 var nsa 引擎 table
原文地址:https://www.cnblogs.com/holm/p/12870737.html