phpbar.de logo

Mailinglisten-Archive

[php] mysql-Query - performence

[php] mysql-Query - performence

Ithamar Garbe garbe_(at)_gmx.de
Mon, 29 Jan 2001 23:28:05 +0100


traff eye wrote:

> hi ,
>
> kamm ,ir einer sagen wie diese unterschiede zustande kommen ??
> bei der Abfrage nr. 1 muss ich c.a. 5 sec warten bis ich ein ergebnis
> bekomme, bei der abfrage nr. 2 dagegen nicht mal 1 sek.

Zwar ist das schon wieder etwas Off-Topic, aber schau mal auf
www.little-idiot.de/mysql
Dort werden die Unterschiede beider Abfragen unter dem Zeitaspekt betrachtet.

Auf der Seite http://www2.little-idiot.de/mysql/mysql-127.html wird
beschrieben, was bei der Abfrage von Joins vor sich geht.
Wenn du einen Befehl auf Performance testen willst, mach einfach ein
"EXPLAIN" vor die Abfrage, z.B. "EXPLAIN SELECT * FROM <tabelle>", dann zeigt
MySQL, wie die Abfrage geschieht.


> das ergebnis ist bei beiden genau gleich, beide abfragen habe ich bei mir
> auf dem localhost zuhause (WAMP).
>
> 1. select distinct users.username from users left outer join daten
> using(username) where daten.lastdl='2001-01-29'

Dies ist die korrekte Form, die am effizientesten arbeitet...

> 2. select distinct users.username from users,daten where
> users.username=daten.username and daten.lastdl>='2001-01-29' order by
> username

Diese Abfrage ist total ineffizient, ich denke, dass diese länger dauert,
nicht die erste. Hier bildest du nämlich ein kartesisches Produkt, das sehr
zeitaufwändig ist...

Schau mal auf die Homepage, die ich angegeben habe, da ist das alles total
gut erklärt und sollte dir eine Hilfe sein!

Gruss,
Ithamar Garbe





php::bar PHP Wiki   -   Listenarchive