phpbar.de logo

Mailinglisten-Archive

Reihenfolge des where-Statement

Reihenfolge des where-Statement

Stefan Brueckmann mailingliste at dr-brueckmann.de
Mon Feb 10 18:10:46 CET 2003


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