MySQL のロックに関する問題

MySQL のロックに関する問題

ロックの分類:

データ操作の粒度から:

テーブルロック:操作時にテーブル全体がロックされます。行ロック: 操作時に、現在の操作行がロックされます。

データ操作の種類に応じて:

読み取りロック (共有ロック): 複数の読み取り操作を、互いに影響を与えることなく、同じデータに対して同時に実行できます。書き込みロック(排他ロック):現在の操作が完了するまで、他のクライアントによる書き込みをブロックします。

ここに画像の説明を挿入


行テーブルロック機能:

ここに画像の説明を挿入


MyISAM テーブルロック:

テーブルロックを追加する方法
MyISAM は、クエリ ステートメント (SELECT) を実行する前に、関係するすべてのテーブルに読み取りロックを自動的に追加します。
INSERT などの操作を実行すると、関連するテーブルに書き込みロックが自動的に追加されます。このプロセスではユーザーの介入は必要ありません。したがって、通常、ユーザーは LOCK を直接使用する必要はありません。
TABLE コマンドは MyISAM テーブルを明示的にロックします。

ここに画像の説明を挿入

つまり、読み取りロックは書き込みをブロックしますが、読み取りはブロックしません。書き込みロックは読み取りと書き込みの両方をブロックします。

さらに、MyISAM の読み取り/書き込みロックのスケジュールは書き込み優先であるため、MyISAM は書き込みが中心のテーブルのストレージ エンジンとしては適していません。書き込みロックが取得されると他のスレッドは操作を実行できなくなるため、更新回数が多すぎるとクエリがロックを取得するのが困難になり、永続的にブロックされることになります。


InnoDB 行ロック

行ロックの概要 行ロックの特徴: InnoDB ストレージ エンジンに偏っており、オーバーヘッドが高く、ロックが遅く、デッドロックが発生する可能性があり、ロックの粒度が最小で、ロック競合の可能性が最も低く、同時実行性が最も高くなります。
InnoDB と MyISAM には 3 つの最大の違いがあります。1 つはトランザクションをサポートしていること、2 つ目は行レベルのロックを使用していること、3 つ目は外部キーをサポートしていることです。

取引:
トランザクションは、SQL ステートメントのグループで構成される論理的な処理単位です。

トランザクションの 4 つの主要な特性 (ACID):

ここに画像の説明を挿入
ここに画像の説明を挿入

ここに画像の説明を挿入

これで、MySQL ロック関連の問題に関するこの記事は終了です。MySQL ロック問題の詳細については、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • MySQL のロック待機とデッドロック問題の分析
  • MySQL ロックブロッキングの詳細な分析
  • MySQL ロックの知識ポイントのまとめ

<<:  Dockerを使用してMQTTサーバーを構築するプロセスの詳細な説明

>>:  JavaScript でクールなマウス テーリング効果を実装

推薦する

衝突検出を実装するためのjs

この記事の例では、衝突検出を実装するためのjsの具体的なコードを参考までに共有しています。具体的な内...

Windows 10 での MySQL 8.0 のダウンロードとインストール構成のグラフィック チュートリアル

この記事では、MySQL 8.0のダウンロードとインストールについてご紹介します。具体的な内容は以下...

iframeを使用してページを呼び出すとページがキャッシュされるかどうかの簡単な分析

最近、毎日変更されるページを iframe を使用して呼び出す必要があるプロジェクトがあります。その...

HTML 再利用テクニック

HTML の再利用は、あまり話題に上らない言葉です。今日は、この問題を次のようにまとめたいと思います...

MySQLクエリの文字セットの不一致の問題を解決する方法

問題を見つける最近、仕事で問題が発生しました。MySQL データベースにテーブルを作成するときに、ラ...

MySQL 5.6 での table_open_cache パラメータの最適化と適切な構成の詳細な説明

1. はじめにtable_cache は非常に重要な MySQL パフォーマンス パラメータであり、...

MySQLデータベースのトランザクションとロックの詳細な分析

目次1. 基本概念酸3.自動コミット4. トランザクション分離レベル5. 同時実行の一貫性の問題6....

Nginx ベースのアクセス制御と接続制限の実装

序文Nginxの組み込みモジュールは、同時リクエスト数の制限とリクエストのソースの制限をサポートして...

Zookeeper 不正アクセス テストの問題

目次序文Zookeeper サービスのオープンを検出情報を入手する接続テスト接続先修理計画参照する序...

Linux/Mac に MySQL をインストールするときにパスワードを忘れた場合の解決策

序文この記事では主に、Linux/Mac に MySQL をインストールするときにパスワードを忘れた...

WeChat アプレットの日付と時刻のコンポーネント (年、月、日、時間、分)

この記事の例では、WeChatアプレットの日付と時刻コンポーネントの具体的なコードを参考までに共有し...

ElementUI el-select の過剰なデータに対する解決策についての簡単な説明

目次1. シナリオの説明2. 解決策オプションが多すぎる el-select コンポーネントの解決策...

MySQLデータベースのトランザクション分離レベルの詳細な説明

データベーストランザクション分離レベルデータベース トランザクションには、低から高まで 4 つの分離...

Linuxのsortコマンドの複数のパラメータを理解するための1つの質問

sort コマンドは非常によく使用されますが、-o、-n、-u、-r などの多くのパラメーターがあり...

Linux システムコマンドのメモ

この記事では、Linux システム コマンドについて説明します。ご参考までに、詳細は以下の通りです。...