phpbar.de logo

Mailinglisten-Archive

Frage zu Indizes

Frage zu Indizes

Sebastian Mendel lists at sebastianmendel.de
Don Mar 11 09:51:06 CET 2004


Hack, Joachim wrote:

> gestern wurde behauptet ein entscheidender Fehler wäre es keine Indizes
> anzulegen. => Richtig!
> 
> Aber, welcher Index ist der Richtige?.
> 
> Lege ich besser für jede Abfrage die aus mehreren Suchfeldern besteht einen
> Index mit den entsprechenden Tabellenfeldern an ODER lege ich für jedes
> Suchfeld einen eigenständigen Index an ODER ist das letztlich egal?

Indizes beschleunigen zwar das finden der Daten, aber sie bremsen auch 
das Schreiben der Daten, weil bei jedem Schreiben auch die Indizes 
aktualisiert werden müssen. Woraus nicht resultiert das man auf Indizes 
verzichten sollte! sondern sich lediglich gut überlegen muss welche 
Indizes man benötigt.

Man muss sich also überlegen ob mehr gelesen oder geschrieben wird, und 
_WER_ liest und schreibt, wenn z.b. der 'Kunde' nur liest und der 
'Anbieter' hauptsächlich schreibt, sollte der Kunde natürlich bevorzugt 
werden, also lieber ein Index mehr als zu wenig!

MySQL kann nur _ein_ Index pro Tabelle benutzen, dabei suchst es sich 
den wohl am besten geeigneten heraus wenn es mehrere gibt, dieser sollte 
dann so viele Felder wie möglich beinhalten die in der Anfrage im WHERE, 
JOIN oder ORDER feld stehen!

http://www.mysql.com/doc/en/MySQL_indexes.html
http://www.mysql.com/doc/en/Indexes.html
http://www.mysql.com/doc/en/Multiple-column_indexes.html

wichtig ist auch die Reihenfolge der Felde im Index!

zum Test kann man ja am Anfang mehrere Indizes anlegen und dann mit 
EXPLAIN [SELECT ...] testen welchen MySQL verwendet und die restlichen 
wieder löschen.

http://www.mysql.com/doc/en/EXPLAIN.html

-- 
Sebastian Mendel (www.sebastianmendel.de)

*www.warzonez.de* | www.tekkno4u.de | www.nofetish.com

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


php::bar PHP Wiki   -   Listenarchive