nntp2http.com
Posting
Suche
Optionen
Hilfe & Kontakt

Re: JOIN Problem

Von: Oliver Benning (oliver@treibhaus.ping.de) [Profil]
Datum: 05.06.2008 16:04
Message-ID: <g28rop$4nq$1@lucy.ping.de>
Newsgroup: de.comp.datenbanken.mysql
"Andreas Kretschmer" <akretschmer@spamfence.net> schrieb im Newsbeitrag
news:qr6lh5-0lu.ln1@akretschmer.selfip.info...
> begin  Oliver Benning schrieb:
>>
>> "Andreas Kretschmer" <akretschmer@spamfence.net> schrieb im
Newsbeitrag
>> news:tm4lh5-lop.ln1@akretschmer.selfip.info...
>>> begin  Oliver Benning schrieb:
>>>> Hallo,
>>>>
>>>> Wie kriege ich jetzt den nächsten freien "lfd_index"
für die gruppe_nr
>>>> "250", um einen neuen Datensatz einzufügen? Der
nächste freie Index
>>>> wäre
>>>> "C"
>>>> für gruppe_nr 250, für gruppe_nr 500 wäre es E.
>>>
>>> select lfd_index from TabelleA where lfd_index > (select max(lfd_index)
>>> from TabelleB where gruppe = (select gruppe from Tabellec where
>>> gruppe_nrP0)) order by lfd_index limit 1;
>>
>> Geht das auch ohne Sub-Selects? Ich hab damit ein ziemliches
>> Performance-Problem.
>
> select a.lfd_index from TabelleA a inner join (select max(lfd_index) as
> idx from TabelleB b left join Tabellec c on (b.gruppe=c.gruppe) where
> c.gruppe_nrP0) foo on a.lfd_index > foo.idx order by 1 limit 1;

Auf meinem lokalen System liefert der SELECT ohne LIMIT 1 nur 4 Datensätze
(obwohl in TabelleA ca. 5000 sind) in 0.05 Sekunden, auf unserem MySQL 5.1
Cluster dauerts dann schon 30 Sekunden und es werden alle 5000 geliefert,
obwohl einige lfd_index Nummern vergeben sind. Die Indices sind korrekt.


[ Auf dieses Posting antworten ]

Antworten