26. November 2007

MySQL: UNION SELECT schneller als OR Bedingung

SELECT column FROM table WHER a=1 OR b=2

Schneller:

SELECT column FROM table WHERE a=1

UNION

SELECT column FROM table WHERE b=2

Hintergrund: Bei Oder-Bedingungen im WHERE -Teil des Statements nutzt MySQL keine Keys, sondern führt einen Full-Table-Scan aus. Hingegen können die Keys beim UNION SELECT benutzt werden und MySQL muss im günstigsten Fall nicht in die eigentlichen Daten schauen, um die zutreffenden Datenätze zurückzuliefern.

Noch keine Kommentare!

Schreibe einen Kommentar

Achtung: Kommentare, die lediglich Werbezwecken dienen und keinen sinnvollen Bezug in angemessenem Umfang zum Artikel aufweisen (z.Bsp. sinnleere Einzeiler mit Link zu anderen Webseiten), werden mit 500 Euro pro Kommentar und angefangenem Monat in Rechnung gestellt.

Folgende Tags sind erlaubt: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>