mysql sebességkérdések

Hi!

Lenne néhány sebességkérdésem viszonylag nagyterheltségű rendszerekhez. Inkább a belső működésre vonatkoznak, de remélem tud valaki valamit mondani.

A) Van egy sok millió soros tábla, amiből szeretnék mondjuk 100 sort kiválasztani.
1)

 s elect * from table where id > 100 and id < 201 

2)

s elect * from table where id = 101 ;
s elect * from table where id = 102; 
...
...
...
s elect * from table where id = 200 

Feltételezem az első megoldás sokkal gyorsabb, de mennyi a különbség, ha mondjuk ugyanazt a 100 sort nem egy, hanem 100 különálló s electtel kérdezem le? Nagyságrendbeli, vagy 2- es szorzó alatti?

A többit majd később.

Köszi.

Hozzászólások

esetleg ha megmerned? :D a te tablad :]

---
Apple iMac 20"
áéíóöőúüű

+1

De ha id indexelt, akkor egy sor kikeresése O(n logn), majd utána ha inkább a BETWEEN kulcsszót használnád O(1) lépésben kiválasztja a keresett sorokat. Ha a lekérdezésoptimalizáló nem csinál ebből BETWEEN -t akkor kicsit nagyobb az overhead.
Ezzel szemben a második megoldás O(m*n logn) -el fog működni.

Ha id nem indexelt akkor az első megoldás O(n), a második O(n*m).

Ráadásul a második megoldás még m-szer igényli az SQL utasítás parsolását, optimalizálásást, végrehajtását, míg az első csak egyszer.

(n a sorok száma, m a keresett sorok száma)

--
The Net is indeed vast and infinite...
http://gablog.eu