Optimieren Sie die Join-Anweisung:
Mysql4.1 beginnt mit der Unterstützung von SQL-Unterabfragen. Mit dieser Technik können Sie mit einer SELECT-Anweisung eine einzelne Spalte mit Abfrageergebnissen erstellen und dieses Ergebnis dann als Filterbedingung in einer anderen Abfrage verwenden. Durch die Verwendung von Unterabfragen können viele SQL-Vorgänge ausgeführt werden, für deren Ausführung logischerweise mehrere Schritte gleichzeitig erforderlich sind. Außerdem können Transaktions- oder Tabellensperren vermieden werden, und das Schreiben ist ebenfalls einfach. In einigen Fällen können Unterabfragen jedoch durch effizientere Verknüpfungen (JOIN) ersetzt werden.
.
Angenommen, wir möchten alle Benutzer extrahieren, die keine Bestelldatensätze haben, können wir die folgende Abfrage verwenden, um sie zu vervollständigen:
SELECT * FROM customerinfo WHERE CustomerID NOT in (SELECT CustomerID FROM salesinfo)
Bei Verwendung einer Verbindung (JOIN). Um diese Abfrage abzuschließen, ist die Geschwindigkeit viel höher. Insbesondere wenn es einen Index für CustomerID in der salesinfo-Tabelle gibt, ist die Leistung besser. Die Abfrage lautet wie folgt:
SELECT * FROM customerinfo LEFT JOIN salesinfoON customerinfo.CustomerID=salesinfo.CustomerID
WHERE salesinfo.CustomerID IS NULL
Join (JOIN). Der Grund, warum es effizienter ist, liegt darin, dass MySQL keine temporäre Tabelle im Speicher erstellen muss, um diese logische zweistufige Abfrage abzuschließen.
Das Obige ist der Inhalt der für MySQL optimierten Join-Anweisung. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website (www.php.cn)!