Überraschende Abfrage Ergebnisse (wahrscheinlich nur für mich).
Überraschende Abfrage Ergebnisse (wahrscheinlich nur für mich).
am 05.02.2006 21:20:51 von Zsolt Koppany
Hi,
Ich habe drei abfragen und verstehe nicht warum mysql-4.1.16-win sich so
verhält.
Die erste Abfrage ist sehr langsam und verwendet kein Index. Wenn ich
Abfragen 2 und 3 durchführe werden wohl Indexen benutzt.
Wo ist mein Fehler?
1.
explain select count(*) from object_association AS DEPEND
WHERE DEPEND.from_id IN (12579, 14099, 14233) OR DEPEND.to_id IN(12579,
14099, 14233)
3541 rows using where
2.
explain select count(*) from object_association AS DEPEND
WHERE DEPEND.from_id IN (12579, 14099, 14233)
3 rows using index
3.
explain select count(*) from object_association AS DEPEND
WHERE DEPEND.to_id IN(12579, 14099, 14233)
3 rows using index
Zsolt
Re: Überraschende Abfrage Ergebnisse (wahrscheinlich nur für mich).
am 05.02.2006 21:52:21 von Christian Kirsch
Zsolt Koppany wrote:
> Hi,
>
>
>
> Ich habe drei abfragen und verstehe nicht warum mysql-4.1.16-win sich so
> verhält.
>
>
>
> Die erste Abfrage ist sehr langsam und verwendet kein Index. Wenn ich
> Abfragen 2 und 3 durchführe werden wohl Indexen benutzt.
>
>
>
> Wo ist mein Fehler?
>
Du weigerst Dich obstinat, die Dokumentation zu lesen. Aber so einen
Fehler kannst Du ja leicht korrigieren: Gehe zu dev.mysql.com/doc. Gehe
direkt dorthin, begib Dich nicht über Los.
Re: Überraschende Abfrage Ergebnisse (wahrscheinlich nur für mich).
am 05.02.2006 22:54:44 von steinboeck
Zsolt Koppany schrieb:
> 1.
>
> explain select count(*) from object_association AS DEPEND
>
> WHERE DEPEND.from_id IN (12579, 14099, 14233) OR DEPEND.to_id IN(12579,
> 14099, 14233)
>
> 3541 rows using where
Mit dem "or" wird das nix mit index-verwenden. Nimm besser zwei Abfragen
und addiere die Ergebnisse.
Re: Überraschende Abfrage Ergebnisse (wahrscheinlich nur für mich).
am 06.02.2006 08:34:11 von Zsolt Koppany
Danke Michael,
ist das ein MySql Problem oder gilt das generel?
Zsolt
"Michael Steinböck" schrieb im Newsbeitrag
news:59c3c$43e67427$506c640f$23829@news.chello.at...
> Zsolt Koppany schrieb:
>> 1.
>>
>> explain select count(*) from object_association AS DEPEND
>>
>> WHERE DEPEND.from_id IN (12579, 14099, 14233) OR DEPEND.to_id IN(12579,
>> 14099, 14233)
>>
>> 3541 rows using where
>
> Mit dem "or" wird das nix mit index-verwenden. Nimm besser zwei Abfragen
> und addiere die Ergebnisse.
Re: Überraschende Abfrage Ergebnisse (wahrscheinlich nur für mich).
am 06.02.2006 08:40:00 von Zsolt Koppany
Christian,
kannst du mir doch ein Tip geben wo mein Problem auf dev.mysql.com/doc
beschrieben wird?
Zsolt
"Christian Kirsch" schrieb im Newsbeitrag
news:43e66585$0$342$9b4e6d93@newsread2.arcor-online.net...
> Zsolt Koppany wrote:
>> Hi,
>>
>>
>>
>> Ich habe drei abfragen und verstehe nicht warum mysql-4.1.16-win sich so
>> verhält.
>>
>>
>>
>> Die erste Abfrage ist sehr langsam und verwendet kein Index. Wenn ich
>> Abfragen 2 und 3 durchführe werden wohl Indexen benutzt.
>>
>>
>>
>> Wo ist mein Fehler?
>>
>
> Du weigerst Dich obstinat, die Dokumentation zu lesen. Aber so einen
> Fehler kannst Du ja leicht korrigieren: Gehe zu dev.mysql.com/doc. Gehe
> direkt dorthin, begib Dich nicht über Los.
Re: ?berraschende Abfrage Ergebnisse (wahrscheinlich nur f?r mich).
am 06.02.2006 09:04:14 von Andreas Kretschmer
Andreas
--
Andreas Kretschmer
Linux - weil ich es mir wert bin!
GnuPG-ID 0x3FFF606C http://wwwkeys.de.pgp.net
Re: Überraschende Abfrage Ergebnisse (wahrscheinlich nur für mich).
am 06.02.2006 10:27:06 von Axel Schwenke
"Zsolt Koppany" wrote:
Du schreibst TOFU. Bitte lies
und zitiere in Zukunft richtig. Danke!
>"Michael Steinböck" schrieb
>> Mit dem "or" wird das nix mit index-verwenden. Nimm besser zwei Abfragen
>> und addiere die Ergebnisse.
> ist das ein MySql Problem oder gilt das generel?
Ganz korrekt ist das eine Eigenschaft des MySQL-Optimizers vor 5.x
Lesen bildet!
XL
Re: Überraschende Abfrage Ergebnisse (wahrscheinlich nur für mich).
am 06.02.2006 10:30:24 von stefan hoffmann
tach Zsolt,
Zsolt Koppany schrieb:
> Ich habe drei abfragen und verstehe nicht warum mysql-4.1.16-win sich so
> verhält.
> Die erste Abfrage ist sehr langsam und verwendet kein Index. Wenn ich
> Abfragen 2 und 3 durchführe werden wohl Indexen benutzt.
> Wo ist mein Fehler?
> explain select count(*) from object_association AS DEPEND
> WHERE DEPEND.from_id IN (12579, 14099, 14233) OR DEPEND.to_id IN(12579,
> 14099, 14233)
> 3541 rows using where
Bringt bei MySQL ein kombinierter Index auf from_id und to_id etwas?
Oracle nutzt einen Index (range scan) auf to_id mehrfach und eine
Bitmapauswertung, MSSQL nutzt den kombinierten Index (full scan)...
mfG
--> stefan <--
Re: Überraschende Abfrage Ergebnisse (wahrscheinlich nur für mich).
am 06.02.2006 19:15:58 von newsgroup
stefan hoffmann schrieb:
> tach Zsolt,
>
> Zsolt Koppany schrieb:
>
>
> Bringt bei MySQL ein kombinierter Index auf from_id und to_id etwas?
In Kombination mit or ist das wohl kaum sinnvoll.
> Oracle nutzt einen Index (range scan) auf to_id mehrfach und eine
> Bitmapauswertung, MSSQL nutzt den kombinierten Index (full scan)...
Ein index Full Scan ist wohl kaum etwas, was man erreichen möchte wenn
man "nur" eine Full Table Sacn hat. Wozu sollte ich zuerst den
kompletten Index abgrasen und für jeden Satz auf die Tabelle schauen,
wenn ich gleich die ganze Tabelle durcharbeiten kann (dann spare ich mir
den Overhead mit dem Index).
So far,
Michael
Re: Überraschende Abfrage Ergebnisse (wahrscheinlich nur für mich).
am 07.02.2006 19:53:49 von stefan hoffmann
tach Michael,
Michael König schrieb:
> Ein index Full Scan ist wohl kaum etwas, was man erreichen möchte wenn
> man "nur" eine Full Table Sacn hat.
Kommt auf die Größe des Index an im Verhältnis zur Größe der Tabelle an.
> Wozu sollte ich zuerst den
> kompletten Index abgrasen und für jeden Satz auf die Tabelle schauen,
> wenn ich gleich die ganze Tabelle durcharbeiten kann (dann spare ich mir
> den Overhead mit dem Index).
Je nach Verteilung spart man halt doch...
mfG
--> stefan <--