使用更高的隔离级别是否会降低出现死锁的可能性?

问题描述 投票:1回答:2

所以我试图学习MySQL,但遇到了隔离级别(SERIALIZED, REPEATABLE READ, READ COMMITED, READ UNCOMMITED

我相信我的问题很简单,但是我没有在网络上找到任何信息,所以就这样:

如果我将默认的REPEATABLE READ更改为SERIALIZED或什至从READ UNCOMMITED更改为另一个更高的隔离级别,则我遇到死锁问题的可能性会较小吗?

提前感谢!

mysql deadlock isolation-level
2个回答
1
投票
死锁的可能性不受隔离级别的影响。隔离级别会更改读取操作的行为,但是由于写入操作会发生死锁。但是,隔离级别设置的锁较少,因此可以帮助您避免某些锁类型(例如,间隙锁)。

这些避免死锁的技巧非常有用[https://www.percona.com/community-blog/2018/09/24/minimize-mysql-deadlocks-3-steps/


2
投票
实际上,如果对SELECT操作使用更宽松的INSERT隔离级别,则一方面UPDATE操作与另一方面READ UNCOMMITTEDSELECT之间的死锁可能性较小。

如果您的SELECT操作可以获取表的并发更改结果,可以使用它。

© www.soinside.com 2019 - 2024. All rights reserved.