: http://dev.mysql.com/doc/refman/5.5/en/innodb-locking.html#innodb-intention-locksMySQL InnoDB意図ロックとは何ですか?私は意図ロックについてMySQLのmannualを読んでいる
それは、「実用的な複数の粒度レベルでロックするために」と言っているが、どのように?それについて私たちには言いません。
詳しい説明とサンプルは誰でもいただけますか?
: http://dev.mysql.com/doc/refman/5.5/en/innodb-locking.html#innodb-intention-locksMySQL InnoDB意図ロックとは何ですか?私は意図ロックについてMySQLのmannualを読んでいる
それは、「実用的な複数の粒度レベルでロックするために」と言っているが、どのように?それについて私たちには言いません。
詳しい説明とサンプルは誰でもいただけますか?
InnoDBのデータ空間をデータベースの集まりと考えてください。各データベースはテーブルの集合であり、各テーブルは行の集合です。これは、下位レベルと下位レベルがますます細分性を提供する階層を形成します。
ここで、トランザクション内でこのツリーの一部を更新したい場合はどうしますか?さて、InnoDBはmultiple granularity locking (MGL)を採用しています。 MGLのメカニズムでは、特定の粒度レベルで共有または排他的にロックする「意図」を指定すると、MGLはこれらの意図をまとめて階層化し、それらの意図を考慮してロックする必要がある最小スパニングセットを見つけます。彼らは、オール・オア・ナッシングだ、我々はMyISAMテーブルで見たものである:意思ロックなし
は、あなたがハイレベルが本当にあなたに多くの柔軟性を与えていないと排他共有ロックを持っています。しかし、MGLは、のコンセプトを、とは排他的とすることを意図しています。これは上記のように「ちょうど十分な」ロックを提供するものです。
具体的なCレベルの実装について知りたい場合は、Introduction to Transaction Locks in InnoDBを参照してください。