2017-03-09 1 views
-2

私はしばらくWebを検索しており、結論に至ることはできません。DjangoのMySQLとPostgreSQL、ロックの観点から

DjangoプロジェクトとMySQLを使用しているときに、MySQLで「次キー」ロックが原因であると思われるDEADLOCK問題が発生しました。

検索後、PostgreSQLはこのロック機構を使用しないようですので、この問題は解決しますが、私はPostgreSQLのロックを完全に理解していないため、疑問があります。パフォーマンスの観点からの影響。

PostgreSQLで私のためにロックを説明することができたら、私はうれしく思います。おかげさまで

答えて

0

InnoDBはネクストキーロックをとる場合にのみ、あなたSELECTFOR UPDATEまたはLOCK IN SHARE MODEREPEATABLE READ中(デフォルト値)またはSERIALIZABLE分離レベルを持ちます。

PostgreSQLはギャップをロックしません。後で同時トランザクションによってギャップに挿入される行は、REPEATABLE READトランザクションでは表示されないため、問題は存在しません。

InnoDBテーブルには、行を作成したトランザクションを格納するフィールドDB_TRX_IDがあるため、MySQLに問題があるのはわかりませんが、MySQLのエキスパートであると主張することはできません。

関連する問題