Heim > Datenbank > MySQL-Tutorial > Hauptteil

Welches ist effizienter bei der Verwendung von Union oder In?

一个新手
Freigeben: 2017-09-30 10:17:31
Original
3147 Leute haben es durchsucht

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);  
Nach dem Login kopieren

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);
Nach dem Login kopieren

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  
Nach dem Login kopieren

Effizienz Es gibt eine große Verbesserung.

mysql>
108 rows in set (0.02 sec)
Nach dem Login kopieren

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!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage