sql >> Database >  >> RDS >> Mysql

MySQL INSERT en SELECT Prioriteitsvolgorde

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.



  1. Mysql Query-problemen met LIKE en apostrof

  2. Hoe u alle schendingen van beperkingen in een SQL Server-database kunt vinden

  3. Converteer rijen naar kolommen met 'Pivot' in SQL Server

  4. Door komma's gescheiden veld uitbreiden naar meerdere rijen in MySQL