Verwendung von UNION ALL für effiziente Abfragen
Beim Versuch, nach einer Zeile in zu suchen B. eine Tabelle mit dekrementierender Genauigkeit, ist es ineffizient, mehrere SELECT-Anweisungen nacheinander auszuführen. Erwägen Sie stattdessen die Verwendung einer UNION ALL-Abfrage, um mehrere SELECTs in einem einzigen effizienten Ausdruck zu kombinieren.
Optimierte Abfrage:
SELECT * FROM image WHERE name = 'name105' AND group_id = 10 UNION ALL SELECT * FROM image WHERE name = 'name105' UNION ALL SELECT * FROM image WHERE group_id = 10 LIMIT 1;
Erklärung:
Diese Abfrage verwendet drei SELECT-Anweisungen mit jeweils einem zunehmend niedrigeren Level von Präzision:
Durch die Kombination dieser SELECTs mit UNION ALL stellt die Abfrage sicher, dass die erste Übereinstimmung zurückgegeben wird, auch wenn diese nur auf einem Parameter basiert.
Vorteile:
Hinweis:
Berücksichtigen Sie in PostgreSQL-Versionen 11 und höher die Möglichkeit des parallelen Anhängens, wenn Sie UNION ALL verwenden. Dies kann in bestimmten Szenarien Auswirkungen auf die Zuverlässigkeit der Abfrage haben. Weitere Informationen finden Sie im folgenden Thread:
Das obige ist der detaillierte Inhalt vonWie kann UNION ALL SELECT-Anweisungen mit dekrementierender Präzision in PostgreSQL optimieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!