Was ist der Unterschied zwischen dem EXISTS
y IN
Klausel in SQL?
Wann sollten wir die EXISTS
und wann sollten wir die IN
?
Was ist der Unterschied zwischen dem EXISTS
y IN
Klausel in SQL?
Wann sollten wir die EXISTS
und wann sollten wir die IN
?
Welche Variante schneller ist, hängt von der Anzahl der Abfragen ab, die von der inneren Abfrage abgerufen werden:
EXIST wertet auf true oder false, aber IN vergleicht mehrere Werte. Wenn Sie nicht wissen, ob der Datensatz vorhanden ist oder nicht, sollten Sie EXIST wählen.
Der Grund dafür ist, dass der EXISTS-Operator nach dem Prinzip "at least found" arbeitet. Er gibt "true" zurück und stoppt das Scannen der Tabelle, sobald mindestens eine passende Zeile gefunden wurde.
Wenn der IN-Operator hingegen mit einer Unterabfrage kombiniert wird, muss MySQL zuerst die Unterabfrage verarbeiten und verwendet dann das Ergebnis der Unterabfrage, um die gesamte Abfrage zu verarbeiten.
Als Faustregel gilt: Wenn die Unterabfrage eine große Datenmenge enthält Menge an Daten enthält, bietet der EXISTS-Operator eine bessere Leistung.
Die Abfrage, die den IN-Operator verwendet, wird jedoch schneller ausgeführt, wenn die von der Unterabfrage zurückgegebene Ergebnismenge sehr klein ist.
In certain circumstances, it is better to use IN rather than EXISTS. In general, if the selective predicate is in the subquery, then use IN. If the selective predicate is in the parent query, then use EXISTS.
https://docs.oracle.com/cd/B19306_01/server.102/b14211/sql_1016.htm#i28403
Nach meinem Verständnis sollten beide gleich sein, solange wir nicht mit NULL-Werten arbeiten.
Der gleiche Grund, warum die Abfrage nicht den Wert für = NULL vs is NULL zurückgibt. http://sqlinthewild.co.za/index.php/2010/02/18/not-exists-vs-not-in/
Was als boolesche vs Komparator Argument geht, um einen booleschen beide Werte zu generieren muss verglichen werden und das ist, wie jeder wenn Bedingung works.so ich nicht verstehen, wie IN und EXISTS anders verhalten .
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.