phpbar.de logo

Mailinglisten-Archive

AW: Join mit langer Laufzeit: Index gesucht

AW: Join mit langer Laufzeit: Index gesucht

Thomas Lamy Thomas.Lamy@netwake.de
Mon Nov 4 18:12:12 2002


Schick doch mal den exakten Aufbau der beiden Tabelle, und vielleicht auch
Beispieldaten.

Ich rate mal ins Blaue: NOT IN ('X') und/oder die Konvertierung sind schuld.
Aber mehr nach mehr informationen...

> -----Ursprüngliche Nachricht-----
> Von: Ruediger Weiss [mailto:ruediger_weiss@web.de]
> Gesendet: Montag, 4. November 2002 17:07
> An: mysql-de@lists.4t2.com
> Betreff: Join mit langer Laufzeit: Index gesucht
> 
> 
> Hallo Liste,
> ich habe einen Join mit langer Laufzeit (>6 Sekunden) 
> trotz nicht allzu grossem Datenvolumen (Tabelle a: 992 DS, 
> Tabelle b: 1196 DS).
> Leider bin ich anscheinend nicht in der Lage, einen Index auf 
> Tabelle a zu formulieren,
> der die Laufzeit verkürzt.
> 
> explain select a.ARTIKELID, MEMBERID FROM ARTIKEL a
> left outer join STRUKTUR b
> on a.ARTIKELID=b.MEMBERID
> and  b.KATALOGID = 1
> and b.STATUS = 'A'
> where a.KATALOGID = 1
> and a.LOKZ not in ('X')
> and a.AKTIV = 'X'
> and
> (
>         (
>                 (a.GUELVON / 1) <=20021104
>                 and (a.GUELBIS / 1) >=20021104
>                 and (a.SONDER in ('n')
>                 or a.SONDER is null)
>         )
>         or
>         (
>                 (a.SGUELBIS / 1) >=20021104
>                 and (a.SGUELVON / 1) <=20021104
>                 and a.SONDER in ('j')
>         )
> )
> 
> Explain ergibt folgendes Bild:
> 
> table   type    possible_keys   key     key_len ref     rows    Extra
> a       ALL     ARTIKELZUGRIFF  NULL    NULL    NULL    992   
>   where used
> b       ref     STATUSINDEX     STATUSINDEX     2       const   10
> 
> Der Index auf b scheint also in Ordnung z usein (war ja auch 
> einfach) ...
> 
> Der Index ARTIKELZUGRIFF auf a, der keine 
> Laufzeitverbesserung bringt, geht über die Felder 
> a.KATALOGID, a.LOKZ, a.AKTIV und a.SONDER
> 
> Hat jemand eine Idee? Oder liegt die lange Laufzeit lediglich 
> daran, dass in zwei der WHERE Bedingungen ein CHARfeld zum 
> Vergleich mit einer Zahl konvertiert werden muss ?
> 
> Freue mich über gute Ideen,
> Viele Grüße,
> Rüdiger
> ________________________________________________________________
> Keine verlorenen Lotto-Quittungen, keine vergessenen Gewinne mehr! 
> Beim WEB.DE Lottoservice: http://tippen2.web.de/?x=13
> 
> 
> -- 
> Infos zur Mailingliste, zur Teilnahme und zum An- und Abmelden unter
> -->>  http://www.4t2.com/mysql 
> 

-- 
Infos zur Mailingliste, zur Teilnahme und zum An- und Abmelden unter
-->>  http://www.4t2.com/mysql 


php::bar PHP Wiki   -   Listenarchive