mysqlロック-MyISAMストレージエンジン

998 ワード

2つのクライアントを使用して2つのセッションをシミュレート
まずテーブルmylockを作成し、2つのデータを挿入します.
ロックコマンド
mysql> lock table mylock read;

ロック解除コマンド
mysql> unlock tables;

readロック(共有ロック)ロックを追加した後の現在のセッションとその他のセッションがデータベースの操作に与える影響
session-1
session-2(その他のsession)
mylockをロックする
せつぞくたんまつ
現在のセッションでは、テーブルレコードをクエリーできます.
他のセッションでは、テーブルレコードをクエリーすることもできます.
現在のセッションでは、ロックされていない他のテーブルをクエリーできません.
他のセッションでは、ロックされていない他のテーブルをクエリーできます.
現在のセッションでロックされたテーブルを挿入または更新すると、エラーが表示されます.
ロックされたテーブルの挿入または更新は、ロックの取得を待機します.
リリースロック
他のセッションはロックを取得し、挿入操作は完了しました.
writeロック(書き込みロック)ロックを追加した後、現在のセッションと他のセッションがデータベースの操作に与える影響
session-1
session-2(その他のsession)
mylockをロックする
せつぞくたんまつ
現在のセッションはクエリーできます.このテーブルを更新しても実行できます.
ロックされたテーブルの挿入または更新は、ロックの取得を待機します.
リリースロック
他のセッションでロック、クエリー、または挿入操作が完了しました.
簡単に言えば、読み取りロックは書き込みをブロックしますが、読み取りをブロックすることはありません.書き込みロックは読み取りと書き込みをブロックします.