phpbar.de logo

Mailinglisten-Archive

Frage zu Indizes

Frage zu Indizes

Vladislav Vorobiev listen at gogaru.com
Don Mar 11 11:33:08 CET 2004


On Thu, 11 Mar 2004 09:51:06 +0100
Sebastian Mendel <lists at sebastianmendel.de> wrote:

> 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.

Verstehe ich das richtig? Index ist Primery Key? Also kann es ja selten vorkommen, dass mehrere noch ein feld keine wiederhollungen beinhaltet. Nehmen wir mal das klassische beispiel 

TABELE
PLZ ORT BUNDESLAND

Es kann vorkommen das ich nach allem suchem muss, aber ich kann nur PLZ als Pr.Key angeben. Oder ist Index in MYSQL doch was anderes.

Vlad

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


php::bar PHP Wiki   -   Listenarchive