3 messages in com.mysql.lists.mysql-deRE: UNION vs. OR
FromSent OnAttachments
Thomas Goik - echtwahr.com20 Dec 2007 14:10 
Thomas Goik - echtwahr.com21 Dec 2007 01:05 
Thomas Goik - echtwahr.com22 Dec 2007 01:11 
Subject:RE: UNION vs. OR
From:Thomas Goik - echtwahr.com (tech@echtwahr.com)
Date:12/21/2007 01:05:23 AM
List:com.mysql.lists.mysql-de

Hallo Mario;

Das selbe Ergebnis erreichst Du mit " IN " in der WHERE Klausel.

Ja ich weiß, das wird eh von Optimizer umgeschrieben

Es ging eher darum, dass die OR Abfrage nicht optimiert werden kann vom Optimizer und daher meine Frage ob eine mehrfach Abfrage auf die selbe Tabelle eben über UNION besser optimiert werden kann vom optimizer.

[COPY] Posted by André Somplatzki on April 15 2005 3:42pm [Delete] [Edit] Indices lose their speed advantage when using them in OR-situations (4.1.10): SELECT * FROM a WHERE index1 = 'foo' UNION SELECT * FROM a WHERE index2 = 'baar'; is much faster than SELECT * FROM a WHERE index1 = 'foo' OR index2 = 'bar';

Mein frage ist eben bei 5.0.32, ob dort auch noch die fehlende Optimierung gibt bei OR Anfragen

Mit freundlichen Grüssen Thomas Goik

-----Mensaje original----- De: Mario Schnauss [mailto:mar@schrogg.com] Enviado el: Donnerstag, 20. Dezember 2007 23:39 Para: Thomas Goik - echtwahr.com Asunto: Re: UNION vs. OR

Thomas Goik - echtwahr.com schrieb:

Welche Anfrage Art ist schneller (besser) ein UNION auf immer die Selben Felder oder ein OR

Das selbe Ergebnis erreichst Du mit " IN " in der WHERE Klausel.

SELECT

Die Frage, welche Art der Abfrage die performanteste ist, würde ich mir durch eigene Tests selbst beantworten. Bei meinen Tests war die Abfrage mit "IN" ist die schnellste und die Abfrage mit UNION die langsamste. Vielleicht hilft Dir auch ein "EXPLAIN SELECT ...", um Informationen über die Query zu erhalten.

viele Grüße, Mario