Mysql ロック粒度は、通常ロック レベルと呼ばれるものです。データベース エンジンには複数粒度のロックがあり、1 つのトランザクションでさまざまな種類のリソースをロックできます。 MySQL データベースには、ページ レベルのロック、テーブル レベルのロック、行レベルのロックという 3 つのロック レベルがあります。
#ロックの粒度
(推奨チュートリアル:mysql チュートリアル)
ロックの粒度は、通常ロック レベルと呼ばれるものです。ロック階層
データベース エンジンは、多くの場合、リソースを完全に保護するために複数の粒度でロックを取得する必要があります。この複数の粒度レベルのロックのセットは、ロック階層と呼ばれます。たとえば、インデックスからの読み取りを完全に保護するには、データベース エンジン インスタンスで行に対する共有ロックを取得し、ページとテーブルに対して意図的な共有ロックを取得する必要がある場合があります。MySQL には 3 つのロック レベルがあります: ページ レベル、テーブル レベル、行レベル
MyISAM および MEMORY ストレージ エンジンはテーブル レベルのロック (テーブル レベルのロック) を使用します。##BDB ストレージ エンジンはページ レベルのロックを使用しますが、テーブル レベルのロックもサポートします。
InnoDB ストレージ エンジンは、行レベルのロック (行レベルのロック) とテーブル レベルのロックの両方をサポートします。もサポートされていますが、デフォルトでは行レベルのロックが使用されます。
MySQL ロックの特性は、次のように大まかに要約できます。:テーブル レベルのロック: 低いオーバーヘッド、高速なロック、デッドロックなし; ロックの粒度は大きく、ロック競合の可能性は最も高く、同時実行性は最も低くなります。
行レベルのロック: オーバーヘッドが高く、ロックが遅い。デッドロックが発生する可能性がある。ロックの粒度は最も小さく、ロックの競合の可能性は最も低く、同時実行性は最も高くなります。
ページ ロック: コストとロック時間はテーブル ロックと行ロックの間であり、デッドロックが発生します。ロックの粒度はテーブル ロックと行ロックの間で、同時実行性は平均的です。
以上がmysqlのロック粒度とは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。