ホームページ >データベース >mysql チュートリアル >Mysql-InnoDB ロックの関連コンテンツの紹介
この記事は、Mysql-InnoDB ロックに関する情報を提供します。必要な方は参考にしていただければ幸いです。
ロック タイプ
行レベル ロック
ロック モードは LOCK_S と LOCK_X のみで、他の FLAG はロックの説明に使用されます。 , 前述したように、LOCK_GAP、LOCK_REC_NOT_GAP、LOCK_ORDINARY、LOCK_INSERT_INTENTION の 4 つの記述があります。 (関連する推奨事項: MySQL チュートリアル )
LOCK_REC_NOT_GAP
LOCK_GAP
LOCK_ORDINARY(ネクスト キー ロック)
LOCK_INSERT_INTENTION
static const byte lock_compatibility_matrix[5][5] = { /** IS IX S X AI / / IS / { TRUE, TRUE, TRUE, FALSE, TRUE}, / IX / { TRUE, TRUE, FALSE, FALSE, TRUE}, / S / { TRUE, FALSE, TRUE, FALSE, FALSE}, / X / { FALSE, FALSE, FALSE, FALSE, FALSE}, / AI / { TRUE, TRUE, FALSE, FALSE, FALSE} };
GAP タイプ (ロック オブジェクトが最高値で確立されるか、適用されるロック タイプが LOCK_GAP) の場合、アプリケーションは挿入目的のロックではないため、ロックを待つ必要はありません。これは、セッションが異なるためです。は、同じ GAP の異なるタイプのロックに適用される可能性があり、GAP ロック自体は互いに競合しないように設計されています。
LOCK_ORDINARY または LOCK_REC_NOT_GAP タイプのロック オブジェクトは、LOCK_GAP タイプのロックを待つ必要はありません。ロックは、LOCK_REC_NOT_GAP タイプのロック オブジェクトを待つ必要はありません。
ロック リクエスト インテント ロックが挿入されるのを待つ必要はありません。
テーブル レベル ロック
InnoDB テーブル レベル ロックには、LOCK_IS、LOCK_IX、LOCK_X、LOCK_S、LOCK_AUTO_INC ロックの 5 つのロック モードがあり、ロック間の互換性があります。次の定義に従います。配列lock_compatibility_matrix。 InnoDB テーブル レベルのロックの目的は、DDL と DML 間の同時実行性の問題を防ぐことです。ただし、バージョン 5.5 での MDL ロックの導入後、InnoDB レイヤーにおけるテーブル レベルのロックの意味は、MDL ロック自体でその機能のほとんどをカバーするようになりました。 インテンション ロックはテーブル レベルであり、IS ロックと IX ロックは互いに競合しませんが、テーブル レベルの S/X ロックとは競合します。S ロックまたは X ロックをレコードに追加する場合は、対応するインテンション ロック、または同じテーブル上でより高いロック強度を持つテーブル レベルのロックがあることを確認する必要があります。
以上がMysql-InnoDB ロックの関連コンテンツの紹介の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。