phpbar.de logo

Mailinglisten-Archive

AW: Index-Optimierung
Archiv Mailingliste mysql-de

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

AW: Index-Optimierung



Morgaehn auch :-)

> ----------
> Von: 	Helge Frowein[SMTP:helge-frowein_(at)_online.de]
> 
> Ich habe eine Tabelle mit einer indizierten auto_inrement-Nummer (ID) als
> erstes Feld, und weiteren Feldern dahinter.
> Nun würde ich gerne eines der (vielen) Felder dahinter (FELD1) indizieren,
> das oft in WHERE verwendet wird, aber NICHT zusammen mit der ID.
> 
Du kannst mit ALTER TABLE ADD INDEX ... (oder so ähnlich,
genau stehts im Manual) einen weiteren, unabhängigen Index
auf die zweiter Spalte legen (bei dir auf FELD1)

> Nun hab ich das mit dem "linksseitigen Präfix" aber so verstanden, dass
> mirt
> der Index dann kaum was bringt, da er nur für die Kombination ID UND FELD1
> verwendet werden kann, nicht aber für NUR FELD1.
> 
Hm, dann hast du das nicht ganz verstanden ;-)

a) Du kannst auf eine oder mehrere Spalten getrennte Indexe
   legen. (Das ist das, was ich oben geschrieben habe)
b) Du kannst auch zusammengesetzte Indexe Verwenden, z.B.
   auf (spalte1, spalte2).
   In diesem Fall wird der Index verwendet bei Abfragen:
   - mit Bedingung where (spalte1=... AND/OR/... spalte2=...)
     (also genau mit den Feldern, die auch indiziert sind)
   - mit Bedingung where (spalte1=...)
     (also nur mit dem/den linken Spalten des Indexes.
     Das ist dann das mit dem linksseitig ;-)

> Wenn ich also nach zwei verschiedenen Feldern in einer Tabelle oft suchen
> muss, aber immer nur einzeln, kann ich dann das zweite davon nicht
> nutzbringend indizieren? 
> 
Doch, siehe ganz oben.

> Oder verstehe ich das alles ganz falsch?
> 
Hm, jetzt hoffentlich nicht mehr :-)


Viele Grüße, Mathias


---
*** Abmelden von dieser Mailingliste funktioniert per E-Mail
*** an mysql-de-request_(at)_lists.4t2.com mit Betreff/Subject: unsubscribe


Home | Main Index | Thread Index

php::bar PHP Wiki   -   Listenarchive