Mailinglisten-Archive |
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. http://www.mysql.com/doc/en/EXPLAIN.html -- 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