phpbar.de logo

Mailinglisten-Archive

Re: Schnellere Queries
Archiv Mailingliste mysql-de

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Schnellere Queries



Hi,

Frank Oellien:
> Das ist mir nicht ganz klar. Ich habe allerings mal einen Auszug meiner
> Tabelle als Attachment beigefügt.
> Der Ausschnitt betrachtet die ersten 2000 Reihen von insgesammt 1.8 Millionen.
> 
Ach so.

Ich nenn die Tabelle jetzt mal TT und die Spalten
  ID                          val
> 89  [ irgendwelche Daten ] -0.210

Du willst also alle IDs, für die es eine Zeile mit val=X und eine
mit val=Y und eine mit val=Z etc.pp. gibt.

Also sagst du:

select distinct ID from TT,TT as A, TT as B, TT as C
       where TT.ID = A.ID and TT.ID = B.id and TT.id = C.id
         and TT.val = 100 and A.val = 200 and B.val = 300 and C.val = 400;

Mach Indices auf val und ID, falls du noch keine hast -- aber das sollte
eh klar sein.

Ich habe dafür mal eine Testtabelle angelegt: 2 Millionen Records, Spalte
VAL geht von 1 bis 100000 und Spalte ID von 0 bis 19. Der obige Ausdruck
findet, so es auf 'val' einen Index gibt, die zwanzig verschiedenen IDs
in ... ahem ... einer zwanzigstel Sekunde. Auf einem P3/450.

Dazu brauchst du zwar 37 MBytes freien Speicher (um den Index zu cachen),
aber das ist es offensichtlich wert.

Ich hab das mit Integers ausprobiert. Wenn du was anderes für deine Spalte
verwendest, empfiehlt es sich fast schon, einen 3-Byte-Integer für die
Spalte zu verwenden und den Wertebereich entsprechend zu skalieren.

-- 
Matthias Urlichs  |  noris network GmbH   |   smurf_(at)_noris.de  |  ICQ: 20193661
The quote was selected randomly. Really.    |      http://www.noris.de/~smurf/
-- 
It will be advantageous to cross the great stream...the Dragon is on
the wing in the Sky...the Great Man rouses himself to his Work.

---
*** Abmelden von dieser Mailingliste funktioniert per E-Mail
*** an mysql-de-request_(at)_lists.4t2.com mit Betreff/Subject: unsubscribe


Home | Main Index | Thread Index

php::bar PHP Wiki   -   Listenarchive