phpbar.de logo

Mailinglisten-Archive

Abfrageoptimierung

Abfrageoptimierung

Sebastian Mendel lists at sebastianmendel.de
Son Jun 25 08:55:35 CEST 2006


Andreas Müller schrieb:
> Hallo Sebastian, 
> 
>> du brauchst einen Index über die Spalten die in der Abfrage im ORDER,
>> WHERE oder JOIN Teil vorkommen, und die Reihenfolge ist natürlich auch
>> noch relevant
> 
> die Reihenfolge ist in der Regel nur bei unvollständigen Index Schlüsseln
> relevant oder eben für die ORDER BY Optimierung. Für eine WHERE Konditionen
> ist es in der Regel unerheblich ob bei "WHERE a=1 AND b=2" der Index "a,b"
> oder "b,a" ist.

natürlich da lassen sich die Bedingungen ja auch beliebig tauschen und 
der MySQL Optimizer weiß das, das ist ja logisch, aber wie oft hat man 
schon lediglich Bedingungen im WHERE ohne ein JOIN und ORDER?

Und genau das hatte ich ja geschrieben: "du brauchst einen Index über 
die Spalten die in der Abfrage im ORDER, WHERE oder JOIN Teil vorkommen, 
und die Reihenfolge ist natürlich auch noch relevant"


>> ... und wenn du eh ALLE Felder der Tabelle benötigst wäre der Index
>> selber ja genauso groß wie die Tabelle ... weniger praktisch
> 
> Auch das kann man so nicht ganz stehen lassen. Durch den Index entstehen
> automatisch quasi vorsortierte und durchgezählte Teiltabellen als Index.
> Diese sind viel besser verzeigert als die Datentabelle und daher meist
> wesentlich performater verwendbar als die Datentabelle. Es kommt gerade bei
> Statistik-Tabellen sehr häufig vor das der Index am Ende um einiges größer
> ist als die Nutzdaten.

du fängst ja schon an wie Norbert ... ;-)

"weniger praktisch" heißt hier nicht das es schlechter ist als keinen 
Index zu haben ... man muss halt nur Bedenken das die Tabelle hier 
mindestens doppelt so groß ist wie die eigentlichen Daten. Außer acht 
gelassen das vielleicht noch andere Indizes existieren ... und dieser 
große Index ja durch MySQL versucht wird im RAM gehalten zu werden ...


-- 
Sebastian

-- 
Infos zur Mailingliste, zur Teilnahme und zum An- und Abmelden unter
-->>  http://www.4t2.com/mysql 


php::bar PHP Wiki   -   Listenarchive