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 でクールなマウス テーリング効果を実装

推薦する

MySQL スライディング集計/年初来集計の原理と使用例の分析

この記事では、例を使用して、MySQL スライディング集計/年初来集計の原理と使用方法を説明します。...

Linux ipcsコマンドの使用

1. コマンドの紹介ipcs コマンドは、Linux のプロセス間通信機能の状態を報告するために使用...

React diffアルゴリズムソースコード分析

目次単一ノード差分単一要素を調整するマルチノード差分調整子配列ノードが移動したかどうかを判断するには...

ドロップダウンリスト選択ボックスを実装するJavaScript

この記事の例では、ドロップダウンリスト選択ボックスを実装するためのJavaScriptの具体的なコー...

Linux で Apache を使用してファイル サーバーを構築する手順

1. ファイルサーバーについてプロジェクトでは、公開ソフトウェアやデータをプロジェクト チーム メン...

電子署名を実装するWeChatミニプログラム

この記事では、WeChatミニプログラムで電子署名を実装するための具体的なコードを参考までに紹介しま...

CenterOS7 インストールおよび構成環境 jdk1.8 チュートリアル

1. まずcenterosに付属のJDKをアンインストールします rpm-qa|grepopenjd...

ウェブサイトのカラースキーム ウェブサイトに適した色の選択

色はウェブサイト訪問者に影響を与えますか?数年前までは、ウェブサイトはまだ贅沢品でしたが、今ではほと...

docker.service 起動エラーの詳細なトラブルシューティング

エラーを報告するには次のコマンドを実行しますsystemctl dockerを再起動しますエラーメッ...

Ubuntu 18.04 に mysql5.7.23 をインストールするチュートリアル

この記事では、Ubuntu18.04にmysql5.7.23をインストールする具体的な方法を参考まで...

Linuxにグラフィカルインターフェースをインストールする方法

1. Linuxのインストール(rootユーザー操作) 1. vncserver をインストールしま...

MySQL解凍版のインストール手順の詳しい説明

1. 公式サイトにアクセスします: D:\mysql-5.7.21-winx64\bin をダウンロ...

MySQLカバーインデックスの詳しい説明

コンセプトインデックスにクエリ要件を満たすすべてのデータが含まれている場合、それはカバーリング イン...

Alibaba Cloud Docker Yum ソースを使用した Docker 17.03.2 の CentOS7 オンラインインストールの詳細説明

参照ドキュメント公式 Docker インストール ドキュメント: https://docs.dock...