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.
richtig, war es.
hab das so interpretiert, dass nur 1 index pro tabelle sinn macht...
Im Nachhinein: Stimmt, kann man so interpretieren. Für mich war klar, dass wenn dem so wäre die Datenbank selbst einen zweiten Index schon beim Anlegen ablehnen würde. Hätte ich dazu sagen sollen, sorry.
dann kommt nun die nächste frage: einer oder mehrere.
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...
Eben. Es wird bei jedem Statement pro abgefragter Tabelle maximal ein Index ausgesucht. Wenn Du also nicht zufällig per Self-Join die Tabelle mehrmals abfragst, musst Du Dich jeweils auf einen Index beschränken. Wie viele andere Indexe noch existieren, ist hierbei unerheblich - sie verbrauchen nur beim Ändern der Daten (UPDATE, INSERT, DELETE) Zeit.
Cheatah
X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
X-Will-Answer-Email: No
X-Please-Search-Archive-First: Absolutely Yes