Hangt ervan af of uw users
tabel is MyISAM of InnoDB.
Als het MyISAM is, neemt de ene verklaring of de andere een slot op de tafel, en er is weinig dat u kunt doen om dat te controleren, behalve tabellen vergrendelen jezelf.
Als het InnoDB is, is het transactiegebaseerd. De architectuur met meerdere versies maakt gelijktijdige toegang tot de tabel mogelijk, en de SELECT
ziet het aantal rijen vanaf het moment dat de transactie is gestart. Als er een INSERT
. is tegelijkertijd aan de gang, de SELECT
ziet 0 rijen. Je zou zelfs 0 rijen kunnen zien met een SELECT
enkele seconden later uitgevoerd, als de transactie voor de INSERT
heeft zich nog niet gecommitteerd.
Er is geen manier voor de twee transacties om echt gelijktijdig te starten. Transacties hebben gegarandeerd enige orde.