2016-08-25 3 views

答えて

1

InnoDBのデータ空間をデータベースの集まりと考えてください。各データベースはテーブルの集合であり、各テーブルは行の集合です。これは、下位レベルと下位レベルがますます細分性を提供する階層を形成します。

ここで、トランザクション内でこのツリーの一部を更新したい場合はどうしますか?さて、InnoDBはmultiple granularity locking (MGL)を採用しています。 MGLのメカニズムでは、特定の粒度レベルで共有または排他的にロックする「意図」を指定すると、MGLはこれらの意図をまとめて階層化し、それらの意図を考慮してロックする必要がある最小スパニングセットを見つけます。彼らは、オール・オア・ナッシングだ、我々はMyISAMテーブルで見たものである:意思ロックなし

は、あなたがハイレベルが本当にあなたに多くの柔軟性を与えていない排他共有ロックを持っています。しかし、MGLは、のコンセプトを、は排他的とすることを意図しています。これは上記のように「ちょうど十分な」ロックを提供するものです。

具体的なCレベルの実装について知りたい場合は、Introduction to Transaction Locks in InnoDBを参照してください。

関連する問題