Mögliches Duplikat:
Gibt es einen Leistungsunterschied zwischen BETWEEN und IN bei MySQL oder bei SQL im Allgemeinen?
Wenn ich die folgenden IDs habe:
1,2,3,4,5,6
Ist es besser, IN oder die Between-Klausel zum Löschen zu verwenden?
Mögliches Duplikat:
Gibt es einen Leistungsunterschied zwischen BETWEEN und IN bei MySQL oder bei SQL im Allgemeinen?
Wenn ich die folgenden IDs habe:
1,2,3,4,5,6
Ist es besser, IN oder die Between-Klausel zum Löschen zu verwenden?
BETWEEN
.IN
.Die Leistung sollte hier nicht wirklich der entscheidende Faktor sein. Allerdings scheint BETWEEN in allen Beispielen, die ich getestet habe, schneller zu sein. Zum Beispiel:
Ohne Indizes wird eine Tabelle mit einer Million Zeilen geprüft, in der jede Zeile x = 1 ist:
SELECT COUNT(\*) FROM table1 WHERE x IN (1, 2, 3, 4, 5, 6);
Time taken: 0.55s
SELECT COUNT(\*) FROM table1 WHERE x BETWEEN 1 AND 6;
Time taken: 0.54s
Ohne Indizes wird eine Tabelle mit einer Million Zeilen geprüft, in der x eindeutige Werte hat:
SELECT COUNT(\*) FROM table1 WHERE x IN (1, 2, 3, 4, 5, 6);
Time taken: 0.65s
SELECT COUNT(\*) FROM table1 WHERE x BETWEEN 1 AND 6;
Time taken: 0.36s
Ein realistischeres Beispiel ist jedoch, dass die id-Spalte eindeutig und indiziert ist. Wenn Sie dies tun, wird die Leistung beider Abfragen nahezu sofort erreicht.
SELECT COUNT(\*) FROM table2 WHERE x IN (1, 2, 3, 4, 5, 6);
Time taken: 0.00s
SELECT COUNT(\*) FROM table2 WHERE x BETWEEN 1 AND 6;
Time taken: 0.00s
Ich würde also sagen, konzentrieren Sie sich darauf, eine klare SQL-Anweisung zu schreiben, anstatt sich über kleine Unterschiede in der Ausführungsgeschwindigkeit Gedanken zu machen. Und stellen Sie sicher, dass die Tabelle korrekt indiziert ist, denn das macht den größten Unterschied.
Hinweis: Die Tests wurden mit SQL Server Express 2008 R2 durchgeführt. Die Ergebnisse können auf anderen Systemen anders ausfallen.
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.