2017-03-09 65 views
-2

我一直在网上搜索一段时间,无法得出结论。Django中的MySQL vs PostgreSQL,从锁的角度来看

当使用Django项目和MySQL时,我遇到了DEADLOCK问题,我认为这是由MySQL中的“下一步”锁定导致的。

经过一番搜索,似乎PostgreSQL并没有使用这个锁定机制,所以它会解决我这个问题,但是我有一些疑惑,因为我没有完全理解PostgreSQL的锁定,我也不确定是什么从表现的角度来看,

如果你能为我解释PostgreSQL中的锁定,或者给我另一个研究想法,我会很高兴。 谢谢。

回答

0

InnoDB的花费下钥匙锁只有当你SELECTREPEATABLE READFOR UPDATELOCK IN SHARE MODE(默认值)或SERIALIZABLE隔离级别。

PostgreSQL不锁定任何空白;通过并发事务稍后插入到间隙中的行只是在REPEATABLE READ事务中不可见,所以问题根本不存在。

我不知道MySQL为什么会出现问题,因为任何InnoDB表都有一个字段DB_TRX_ID,它存储创建该行的事务,但后来我不能声称是MySQL专家。