sql >> Databasteknik >  >> RDS >> Mysql

MySQL INSERT och SELECT prioritetsordning

Beror på om dina users tabellen är MyISAM eller InnoDB.

Om det är MyISAM tar det ena eller andra uttalandet ett lås på bordet, och det finns lite du kan göra för att kontrollera det, förutom låsningstabeller dig själv.

Om det är InnoDB är det transaktionsbaserat. Flerversionsarkitekturen tillåter samtidig åtkomst till tabellen och SELECT kommer att se antalet rader från det ögonblick då transaktionen startade. Om det finns en INSERT pågår samtidigt, SELECT kommer att se 0 rader. Du kan faktiskt till och med se 0 rader med en SELECT exekveras några sekunder senare, om transaktionen för INSERT har inte åtagit sig ännu.

Det finns inget sätt för de två transaktionerna att starta på riktigt samtidigt. Transaktioner har garanterat en viss ordning.



  1. Ersättning för PEAR:MDB2 på PHP 5.3

  2. Olaglig blandning av sammanställningar (utf8mb4_unicode_ci,IMPLICIT) och (utf8mb4_general_ci,IMPLICIT) för operation '='

  3. Döljer PHP / MySQL-felmeddelande

  4. Kan inte ansluta till mysql från Visual Studio 2015