Rumah > Artikel > pangkalan data > Cara menggunakan kunci kekunci mysql
1. Secara lalai, innodb menggunakan kunci kekunci sementara untuk mengunci rekod.
select ... for update
2. Apabila indeks pertanyaan mengandungi atribut unik, kunci kunci sementara akan dioptimumkan dan diturunkan kepada kunci rekod, iaitu, hanya indeks itu sendiri dikunci, bukan julat.
3. Kunci kekunci akan merosot di bawah senario yang berbeza.
Instance
事务1 start transaction; select SLEEP(4); select * from test where age=22 for update; select * from test where age>23 for update; select sleep(20); commit; ************************** 事务2 start transaction; select sleep(8); select * from test where age=20 for update; select * from test where age=21 for update; select * from test where age=22 for update; select * from test where age=23 for update; commit; ************************************ 事务执行状态 事务1 start transaction > OK > 时间: 0s select SLEEP(4) > OK > 时间: 4.001s select * from test where age=22 for update > Affected rows: 0 > 时间: 0.001s select * from test where age>23 for update > Affected rows: 0 > 时间: 0.001s select sleep(20) > OK > 时间: 20s commit > OK > 时间: 0.001s *********************** 事务2 start transaction > OK > 时间: 0.001s select sleep(8) > OK > 时间: 8s select * from test where age=20 for update > Affected rows: 0 > 时间: 0.001s select * from test where age=21 for update > Affected rows: 0 > 时间: 0.001s select * from test where age=22 for update > Affected rows: 0 > 时间: 14.158s select * from test where age=23 for update > Affected rows: 0 > 时间: 0.001s commit > OK > 时间: 0s
Atas ialah kandungan terperinci Cara menggunakan kunci kekunci mysql. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!