Mailinglisten-Archive |
Nikolas Hagelstein wrote: > Hi, > >>schick doch bitte trotzdem mal das EXPLAIN dazu > > siehe unten. > > >>(aber bitte mit leerzeichen anstelle von tabs, damits auch wirklich >>überall gleich aussieht (ich habe monospace, nur tabs werden wohl anders >>dargestellt)) > > > upps sorry eigentlich wollte ich auch keine tabs benutzen > hier nochmal der relevante teil in clean :) > > > > struktur : > -------------------------------------------------- > artikeltbl AtoB bildtbl > > ------------- ------------- ------------- > | artnr |---> | artref | .-> | bid | > -------------- ------------ | ------------- > |bezeichnung| | bildref | -´ | file | > ------------- ------------- ------------- > | Preis | | type | > ------------- ------------- > --------------------------------------------------- > > query: > SELECT a.*,if(ab.bildref is NULL,0,1) AS hasbild > FROM artikel a > LEFT JOIN AtoB ab ON a.artnr=ia.artref > GROUP BY a.artnr > ORDER BY a.bezeichnung LIMIT 0,10 > > > exlain dazu (hoffen man kanns lesen) > > table | type | possible_keys | key | key_len | ref | rows | Extra | > ------------------------------------------------------------------------ > artikel | ALL |NULL |NULL | NULL|NULL | 19201|Using > temporary; Using filesort > ba | ref |PRIMARY,artnr |PRIMARY | 14|artnr| 54|Using index dein problem dürfte das order by sein, ohne dieses dürfte sich sich das query im millisekunden-bereich bewegen da du die sortierung aber brauchst solltest du versuchen bereits im where deine ergebnisse einzuschrenken z.b. 'where artnr between 10 and 100' beschleunigt dein query schon ungemein ein 'where bezeichung like 'a%'' oder ähnlich bringt auch etwas vorteile is aber wohl immer noch relativ langsam ich kenne deine anwednung nicht und kann deshalb auch hier nix weiter zu sagen, aber probier mal ein wenig mit dem where rum! in deinem fall gibt es wohl die möglichkeit durch alle artikel seitenweiße durchzublättern, du solltest das auf kategorien oder anfangsbuchstaben begrenzn, kannst ja am ende eines buchstaben automatisch zum nächsten springen, dann mahcts für den user kein unterschied ... so ähnlich wurde das damals aber glaube ich auch schon vorgeschlagen ... -- Sebastian Mendel www.sebastianmendel.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