phpbar.de logo

Mailinglisten-Archive

Frage zu Indizes

Frage zu Indizes

Sebastian Mendel lists at sebastianmendel.de
Don Mar 11 12:02:12 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!



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