Mailinglisten-Archive |
Hallo Warren Sung, am Montag, 10. Februar 2003 16:49 schriebst du: > Hallo! > > Da in letzter Zeit bei mir Geschwindigkeit der SQL-Abfragen eine > große Rolle spielt, wollte ich fragen in wiefern die Reihenfolge im > Where Statement eine Rolle spielen. Sie spielt bei MySQL eigentlich keine Rolle, solange du den Optimizer nicht einschränkst. Wenn du vor dein SELECT ...FROM ... WHERE ... ein EXPLAIN schreibst (bietet der phpMyAdmin automatisch unter "SQL erklären" an) dann siehst du wie MySQL mit deiner Anfrage umgegangen ist. > Ganz besonders, wenn die > Abfragen über 2 Tabellen gehen. Wenn du MySQL zb mit LEFT JOIN in der Reihenfolge festlegst macht das schon einen Unterschied. Du solltest wo immer Indizes Verwenden, weil die Suche in den Spalten erheblich verringern und die Festplattenzugriffe vermindern. Natürlich müssen die Indizes auch verwaltet werden aber das werden sie ja nur bei Veränderung der Datenbankeinträge. Idr sind aber Datenabfrage häufiger als Einträge. > > Darüber hinaus wollte ich fragen wie man einen Index richtig setzt. > Setzt man für jede Spalte einen eigenen Index oder gruppiert man > mehre Spalten zu einem gemeinsamen Index, je nachdem was im SQL > abgefragt wird? Wenn du die Abfrage nach den Gruppen machst ist Gruppierung besser. Die Indizes sollten nach dem gesetzt werden, was du suchst oder am häufigsten sucht. Ade merci Stefan Brückmann -- Einen Vortrag mit einem Titel zu versehen, der keinem Menschen einleuchtet, ist immer gut. Richard P. Feynman http://www.dr-brueckmann.com <!-- <tags>, scripts; & more --> -- Infos zur Mailingliste, zur Teilnahme und zum An- und Abmelden unter -->> http://www.4t2.com/mysql
php::bar PHP Wiki - Listenarchive