我有一个mysql进程,它执行一次读取和一次更新(在两个不同的表中)。为了确保读取速度,我将隔离级别更改为读取未提交。脏读是可以的,数据一致性并不重要。但它看起来是读未提交隔离级别,更新非常慢--事实上它会影响我的表中的其他写操作。
我的代码如下所示
SET SESSION TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;
SELECT ParentId INTO @ParentId FROM TableA where Id = var_ID;
UPDATE TableB SET Counter = Counter + 1 where Id = @ParentId;
SET SESSION TRANSACTION ISOLATION LEVEL REPEATABLE READ;我假设隔离级别只影响读操作,而不影响写操作。在我包含了Set会话之后...语句中,我的数据库的性能急剧下降。TableB上的所有写入都需要1-2秒,而之前的时间小于100ms(表中有5M-8M条记录)。
有没有人能帮我指点一下?
我在这里找到了类似的问题,但没有得到答案
Read Uncommitted Isolation Level Impact On Insert/Update Transactions
发布于 2016-11-16 15:03:58
试一试
SET SESSION TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;
SELECT ParentId INTO @ParentId FROM TableA where Id = var_ID;
UPDATE TableB SET Counter = Counter + 2 where Id = @ParentId;
SET SESSION TRANSACTION ISOLATION LEVEL REPEATABLE READ;https://stackoverflow.com/questions/40624214
复制相似问题