hi,
achso. dann habe ich Dich anfangs missverstanden, also Du sagtest, es würde nur 1 index verwendet. das war wohl nur auf ein statement bezogen.
Genau.
dann kommt nun die nächste frage: einer oder mehrere.
Kommt drauf an :-)
ich könnte nun einen gemeinsamen für die felder "anzahl" und "kategorie" verwenden, da diese oftmals zusammen in einem WHERE klausel abgefragt werden.
doch manchmal werden auch die felder "shop" und "anzahl" gemeinsam als bedingung gestellt.
in einem andren fall "shop" und "kategorie".
soll ich nun 3 indizes erstellen, die jeweils beide betroffenen felder beinhalten
oder soll ein einzelner index für jedes dieser felder verwendet werden,
wobei das deinem hinweis widerspricht, dass pro abfrage nur auf einen index zugegriffen wird...
Wenn du einen Index über x Felder anlegst, kann dieser nur in einer Abfrage genutzt werden, deren Bedingung auch diese x Felder mit einbezieht.
Legst du nur einzelne Indexe für die jeweiligen Spalten an, kann immer nur einer von diesen für die Optimierung der Abfrage verwendet werden.
Du kannst natürlich sowohl einzelne als auch den kombinierten Index anlegen - behalte dabei aber im Auge, dass ein Index die Performance einer Abfrage zwar erhöht, die von INSERT/UPDATE aber verringert - weil dabei der Index (oder die) ja immer aktualisiert werden müssen.
Noch ein Tipp: Mit EXPLAIN kannst du auch analysieren, welchen INDEX eine Query nutzen kann.
gruß,
wahsaga
/voodoo.css:
#GeorgeWBush { position:absolute; bottom:-6ft; }