所以我试图学习MySQL,但遇到了隔离级别(SERIALIZED, REPEATABLE READ, READ COMMITED, READ UNCOMMITED
)
我相信我的问题很简单,但是我没有在网络上找到任何信息,所以就这样:
如果我将默认的REPEATABLE READ
更改为SERIALIZED
或什至从READ UNCOMMITED
更改为另一个更高的隔离级别,则我遇到死锁问题的可能性会较小吗?
提前感谢!
死锁的可能性不受隔离级别的影响。隔离级别会更改读取操作的行为,但是由于写入操作会发生死锁。但是,隔离级别设置的锁较少,因此可以帮助您避免某些锁类型(例如,间隙锁)。
这些避免死锁的技巧非常有用[https://www.percona.com/community-blog/2018/09/24/minimize-mysql-deadlocks-3-steps/
SELECT
操作使用更宽松的INSERT
隔离级别,则一方面UPDATE
操作与另一方面READ UNCOMMITTED
或SELECT
之间的死锁可能性较小。如果您的SELECT
操作可以获取表的并发更改结果,可以使用它。