ホームページ  >  記事  >  データベース  >  mysql挿入意図ロックの使用方法

mysql挿入意図ロックの使用方法

PHPz
PHPz転載
2023-05-30 09:23:271414ブラウズ

1. 挿入意図ロックは、挿入操作によって生成される、意図ロックではなくギャップ ロックです。複数のトランザクションが同時に同じインデックスギャップに異なるデータを書き込む場合、他のトランザクションの完了を待つ必要はなく、ロック待ちは発生しません。

キー値 4 と 7 を含むレコード インデックスがあり、別のトランザクションがそれぞれ 5 と 6 を挿入すると仮定します。各トランザクションは挿入意図ロックを生成し、それを 4 ~ 7 の間に追加して取得します。挿入された行。データ行は競合しないため、排他ロックではありますが、相互ロックではありません。

2. インテンション ロックを挿入してもロックは防止されず、レコードを挿入するとレコード ロックが保持されます。

insert into test_user(user_id,name,age) values(2,'b',10)
------- TRX HAS BEEN WAITING 18 SEC FOR THIS LOCK TO BE GRANTED:
RECORD LOCKS space id 6628 page no 4 n bits 72 index `index_user` of table `test`.`test_user` trx id 117851203
插入意向锁
lock_mode X insert intention waiting
Record lock, heap no 1 PHYSICAL RECORD: n_fields 1; compact format; info bits 0
 0: len 8; hex 73757072656d756d; asc supremum;;

以上がmysql挿入意図ロックの使用方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はyisu.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。