官方文檔html
InnoDB
implements standard row-level locking where there are two types of locks, shared (S
) locks and exclusive (X
) locks.mysql
A shared (S
) lock permits the transaction that holds the lock to read a row.sql
An exclusive (X
) lock permits the transaction that holds the lock to update or delete a row.ui
If transaction T1
holds a shared (S
) lock on row r
, then requests from some distinct transaction T2
for a lock on row r
are handled as follows:this
A request by T2
for an S
lock can be granted immediately. As a result, both T1
and T2
hold an S
lock on r
.spa
A request by T2
for an X
lock cannot be granted immediately.code
If a transaction T1
holds an exclusive (X
) lock on row r
, a request from some distinct transaction T2
for a lock of either type on r
cannot be granted immediately. Instead, transaction T2
has to wait for transaction T1
to release its lock on row r
.htm
shared lock文檔
A kind of lock that allows other transactions to read the locked object, and to also acquire other shared locks on it, but not to write to it. get
exclusive lock
A kind of lock that prevents any other transaction from locking the same row. Depending on the transaction isolation level, this kind of lock might block other transactions from writing to the same row, or might also block other transactions from reading the same row. The default InnoDB isolation level, REPEATABLE READ, enables higher concurrency by allowing transactions to read rows that have exclusive locks, a technique known as consistent read.