phpbar.de logo

Mailinglisten-Archive

[dbs] Problem mit 2 SELECTs

[dbs] Problem mit 2 SELECTs

Sven Eichler koalas-home at gmx.net
Fre Sep 12 10:40:21 CEST 2003


Hallo

> > wow, besten dank...! nur dauert die abfrage schon im phpmyadmin gut
> > 1min.... kann mir wer anhand dieses selects erklären, welche felder ich
> > da indizieren sollte?? Bis jetzt konnte mir das noch keiner richtig
> > erklären... Ich hab immer nur gehört: Indizier das, was du im where
> > verwendest...
> > Stimmt das???

Nicht ganz, bzw. das Indizieren ist mit Vorsicht zu genießen.
Weniger ist hier meistens Mehr.

> und sonst die felder die mit 'id' heißen sollten ja eh alle nen index
> haben, da sie ja sicher primary keys sind!? und das ist ja auch ein index!

PrimaryKeys sind automatisch indiziert.
Dort braucht man nicht noch extra einen Index anlegen!


Sinnvoll sind Indexe vor allem bei sämtlichen Spalten mit Ziffern-Werten.
Also Integer- und Datumsspalten.
Weniger sinnvoll sind sie bei Textspalten (text, char, varchar usw.).
Was die Suche noch beschleunigen kann, sind enum-Spalten.
Wenn ich das richtig sehe, dann sind deine Spalten news.online, news.fertig 
und news.gesperrt genau die richtigen Anwärter für eine Enum-Spalte.

Zeige doch mal deine Tabellenstruckturen.
Da läßt sich am ehesten erkennen, wo man von der Grundstrucktur her schon mit 
einer Optimierung ansetzen kann, bevor man anfängt mit anderen Dingen herum 
zu experimentieren.


Zum Thema Explain.
Das bringt phpMyAdmin übrigens schon von sich aus schon mit.
Wenn du dort eine Abfrage gestartet hast, siehst du oben unter anderem einen 
Link Namens "SQL erklären".
Ein Klick darauf, liefert dir die Explain-Ausgabe.
Die Ausgabe wäre hier sicherlich auch interessant.



-- 
Koala


php::bar PHP Wiki   -   Listenarchive