Heim  >  Artikel  >  Datenbank  >  Was ist der Unterschied zwischen „in' und „existiert in MySQL'?

Was ist der Unterschied zwischen „in' und „existiert in MySQL'?

清浅
清浅Original
2019-05-07 10:20:3924888Durchsuche

Die Unterschiede zwischen „exists“ und „in“ in MySQL sind: 1. in ist eine Hash-Verbindung zwischen der äußeren Tabelle und der inneren Tabelle, und die innere Tabelle wird zuerst abgefragt. 2. „exists“ ist eine Schleife in der äußeren Tabelle , und dann wird die innere Tabelle abgefragt; 3. Wenn die äußere Oberfläche groß ist, ist die Verwendung schneller, und wenn die interne Tabelle groß ist, ist die Verwendung schneller.

Was ist der Unterschied zwischen „in' und „existiert in MySQL'?

Der Unterschied zwischen „existiert“ und „in“ in MySQL ist:

#对B查询涉及id,使用索引,故B表效率高,可用大表 -->外小内大
select * from A where exists (select * from B where A.id=B.id);
rrree

(1) „existiert“ besteht darin, das Erscheinungsbild zu schleifen Bei jeder Schleife wird die interne Tabelle (Unterabfrage) abgefragt. Da die Abfrage der internen Tabelle einen Index verwendet (die interne Tabelle ist hocheffizient, sodass eine große Tabelle verwendet werden kann), muss die externe Tabelle dies tun Unabhängig davon, wie groß es ist, ist es unvermeidlich (so viel wie möglich, eine kleine Tabelle zu verwenden). Wenn die interne Tabelle also groß ist, besteht die Möglichkeit, sie zu verwenden, um die Effizienz zu beschleunigen Hashen Sie die externe Tabelle und die interne Tabelle, fragen Sie zuerst die interne Tabelle ab und gleichen Sie dann die Ergebnisse der internen Tabelle mit der externen Tabelle ab, verwenden Sie Indizes für die äußere Oberfläche (die äußere Oberfläche ist hocheffizient und kann in großen Tabellen verwendet werden) und Es ist unvermeidlich, die innere Tabelle abzufragen, egal wie groß sie ist. Daher kann die Verwendung von in für eine große äußere Tabelle die Effizienz steigern.

(3) Wenn die beiden abgefragten Tabellen eine ähnliche Größe haben, gibt es keinen großen Unterschied zwischen der Verwendung von „in“ und „exists“. Wenn eine der beiden Tabellen kleiner und die andere eine große Tabelle ist, besteht eine Verwendung für die größere Unterabfragetabelle und für die kleinere Unterabfragetabelle.

Das obige ist der detaillierte Inhalt vonWas ist der Unterschied zwischen „in' und „existiert in MySQL'?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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