Mysql には、行ロック、テーブル ロック、読み取りロック、書き込みロックなど、操作前にすべてロックされるロック メカニズムが多数あり、これらのロックは総称して悲観的ロック (悲観的ロック) と呼ばれます。次の記事では、MySQL のロックを理解し、テーブル ロックと行ロックの違いを紹介します。
#ロックは、コンピュータが複数のプロセスまたはスレッドを調整してリソースに同時にアクセスするためのメカニズムです。データベースでは、コンピューティング リソース (CPU、RAM、I/O など) をめぐる従来の競争に加え、データは多くのユーザーによって共有されるリソースでもあります。データへの同時アクセスの一貫性と有効性をどのように確保するかは、すべてのデータベースが解決しなければならない問題です。ロックの競合も、データベースへの同時アクセスのパフォーマンスに影響を与える重要な要素です。この観点から見ると、ロックはデータベースにとって特に重要かつ複雑です。
mysql におけるテーブル ロックと行ロックの違い
行ロック
特徴:ロック 粒度が小さく、ロック競合の可能性が低く、同時処理能力が強いですが、オーバーヘッドが大きく、ロックが遅く、デッドロックが発生する可能性があります。
ロック方法: 自動ロック。 UPDATE、DELETE、および INSERT ステートメントの場合、InnoDB は関連するデータ セットに排他ロックを自動的に追加しますが、通常の SELECT ステートメントの場合、InnoDB はロックを追加しません。
テーブル ロック
特徴: 低いオーバーヘッド、高速なロック、デッドロックなし、ロックの粒度が大きい、ロック競合の可能性が高い、同時実行性が高い場合のパフォーマンスの低下
ロック方法:自動ロック。クエリ操作 (SELECT) は関連するすべてのテーブルに読み取りロックを自動的に追加し、更新操作 (UPDATE、DELETE、INSERT) は関連するテーブルに書き込みロックを自動的に追加します。
以上がmysqlテーブルロックと行ロックの違いは何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。