phpbar.de logo

Mailinglisten-Archive

Frage zu Indizes

Frage zu Indizes

Vladislav Vorobiev listen at gogaru.com
Don Mar 11 12:31:52 CET 2004



> Vladislav Vorobiev wrote:
> 
> > 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.
> 
> Primary Key == Index
> aber:
> Index != Primary Key
> 
> also:
> 
> der Primary Key ist ein Index, und zwar ein UNIQUE INDEX
> genauso wie ein Feld welches UNIQUE ist ebenfalls ein Index ist/hat
> 
> PRIMÄRY KEY => UNIQUE => INDEX
> 
> ein Feld oder Gruppe von Feldern ist eindeutig (Unique) wenn es der 
> Primary Key ist oder einen UNIQUE'n Index hat
> 
>   - du kannst für jedes beliebige Feld oder Gruppe von Feldern ein Index 
> anlegen, egal ob der Inhalt der Felder einmalig ist oder sich wiederholt!
> 
>   - ein Primary Key oder Unique Index kannst du nur auf Felder oder 
> Gruppen von Feldern anlegen deren Inhalt einmalig, also ohne 
> wiederholungen, ist!
> 
>   - Primary Key und Unique Index ist das selbe! der Primary Key ist ein 
> Unique Index, und der 1. Unique Index wird autmatisch als Primary Key 
> verwendet wenn kein andere Index als Primary markiert ist!

Vielen Dank für die rkklärung... jetzt ist es ein für alle mal klar

Grüss
Vlad

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


php::bar PHP Wiki   -   Listenarchive