2017-03-09 28 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專家。