Unterschied: 1. In führt eine Hash-Verbindungsabfrage über die übergeordnete Abfragetabelle und die untergeordnete Selbstabfragetabelle durch oder führt eine Schleife für die übergeordnete Abfragetabelle durch und fragt dann die untergeordnete Abfragetabelle ab. 2. Wenn kein Index vorhanden ist oder Primärschlüssel. Wenn die Datenmenge hinter in oder oder zunimmt, nimmt die Ausführungseffizienz von oder erheblich ab, die Ausführungseffizienz von in wird jedoch nicht wesentlich abnehmen.
Die Betriebsumgebung dieses Tutorials: Windows10-System, MySQL8.0.22-Version, Dell G3-Computer.
Was ist der Unterschied zwischen in und oder in MySQL?
Für den Datenvergleich zig Millionen Daten
Der Unterschied zwischen in und oder in SQL-Anweisungen ist: unterschiedliche Operationen, unterschiedliche Eignung und unterschiedliche Ausführung Effizienz.
1. Verschiedene Operationen
1. in: in ist eine Hash-Verbindung zwischen der übergeordneten Abfragetabelle und der untergeordneten Selbstabfragetabelle.
2. or: or dient dazu, die übergeordnete Abfragetabelle zu durchlaufen und die untergeordnete Abfragetabelle jedes Mal abzufragen, wenn die Schleife wiederholt wird.
2. Geeignet für verschiedene 5261
1 in: in ist für Situationen geeignet, in denen die untergeordnete Abfragetabelle mehr Daten enthält als die übergeordnete Abfragetabelle.
2. oder: oder eignet sich für Situationen, in denen die untergeordnete Abfragetabelle weniger Daten enthält als die übergeordnete Abfragetabelle.
3. Unterschiedliche Ausführungseffizienz
1 in: Wenn kein Index vorhanden ist, nimmt die Ausführungseffizienz von in nicht wesentlich ab.
2. oder: Wenn kein Index vorhanden ist, nimmt die Ausführungseffizienz von oder mit zunehmender Datenmenge erheblich ab.
Wenn die Spalten, in denen sich in und oder befinden, Indizes oder Primärschlüssel haben, gibt es keinen Unterschied zwischen oder und in, und der Ausführungsplan und die Ausführungszeit sind nahezu gleich.
Wenn die Spalten, in denen sich in und oder befinden, keine Indizes haben, ist der Leistungsunterschied enorm. Wenn kein Index vorhanden ist und die Datenmenge hinter in oder oder zunimmt, wird die Effizienz von in nicht viel sinken, aber die Leistung von oder wird mit zunehmender Anzahl von Datensätzen erheblich sinken
Deshalb, wann und wann Um die Effizienz von oder zu definieren, sollte eine Bedingung hinzugefügt werden, das heißt, ob die Spalte indiziert ist oder ob es sich um einen Primärschlüssel handelt. Wenn ein Index oder Primärschlüssel vorhanden ist, gibt es keinen Leistungsunterschied. Wenn kein Index vorhanden ist, ist der Leistungsunterschied kein bisschen!
Empfohlenes Lernen: MySQL-Video-Tutorial
Das obige ist der detaillierte Inhalt vonWas ist der Unterschied zwischen in und oder in mysql. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!