1. Die Einfügeabsichtssperre ist eine Lückensperre, keine Absichtssperre. Sie wird durch den Einfügevorgang generiert. Wenn mehrere Transaktionen gleichzeitig unterschiedliche Daten in dieselbe Indexlücke schreiben, muss nicht auf den Abschluss anderer Transaktionen gewartet werden, und es erfolgt keine Sperrwartezeit.
Angenommen, es gibt einen Datensatzindex mit den Schlüsselwerten 4 und 7 und verschiedene Transaktionen fügen jeweils 5 und 6 ein. Jede Transaktion generiert eine Einfügungsabsichtssperre, die zwischen 4 und 7 hinzugefügt wird um die eingefügte Zeile exklusiv voneinander zu sperren, sich jedoch nicht gegenseitig zu sperren, da es keinen Konflikt zwischen den Datenzeilen gibt.
2. Durch das Einfügen einer Absichtssperre werden keine Sperren verhindert, und durch das Einfügen eines Datensatzes wird eine Datensatzsperre beibehalten.
Instanz
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;;
Das obige ist der detaillierte Inhalt vonSo verwenden Sie die MySQL-Insert-Intention-Sperre. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!