Ich habe immer gedacht, dass es effizienter ist, aber dieses Mal war ich etwas verwirrt.
SELECT * FROM runinfo WHERE status in (0,2,1,3,4,7,9,10);
Die Effizienz dieser Abfrage beträgt oft mehr als 1 Sekunde.
mysql> SELECT * FROM runinfo WHERE status in (0,2,1,3,4,7,9,10);
106 Zeilen im Satz (1,20 Sek.)
Nach dem Ersetzen durch die folgende Schrift:
SELECT * FROM runinfo WHERE status = 0 union SELECT * FROM runinfo WHERE status = 1 union SELECT * FROM runinfo WHERE status = 2 union SELECT * FROM runinfo WHERE status = 3 union SELECT * FROM runinfo WHERE status = 4 union SELECT * FROM runinfo WHERE status = 7 union SELECT * FROM runinfo WHERE status = 9 union SELECT * FROM runinfo WHERE status = 10
Effizienz Es gibt eine große Verbesserung.
mysql> 108 rows in set (0.02 sec)
Ich kann Ihnen den genauen Grund nicht nennen. Das Statusfeld ist indiziert und es wird einige Aktualisierungen für dieses Feld geben.
Machen Sie zuerst eine Aufzeichnung und finden Sie es später heraus.
Das obige ist der detaillierte Inhalt vonWelches ist effizienter bei der Verwendung von Union oder In?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!