Šta je brže?
Znam da ima ljudi koji vole da benchmark-uju MySQL, ja imam jedan praktičan problem i treba da donesem odluku. Ako imamo jednu tabelu users u kojoj imam klasicna polja:
user_id
username
email
...
country
I u njoj ima 2 miliona records, od kojih treba da izvucem na primer sve kojima je country='RS' (KEY). Recimo da ima 120.000 records
Tražimo klasično: SELECT ... WHERE country='RS' ...
Međutim na 2M records ovo WHERE mi bode oči jer treba da bude što je moguće brže. Pade mi na pamet da je možda brže ako izbegnem WHERE pa da pored ove imam tabelu sa jednim poljem:
create table users_rs (
user_id INT ...
primary key (user_id)
);
U kojoj su samo tih 120.000 koji si iz RS, i onda radimo ovako:
SELECT ... FROM users_rs LEFT JOIN users USING (user_id)
Pošto u tom select-u nema WHERE i ima manje recorda, da li neko misli da je to brže ili je samo wishfull thinking?
__________________
Goran Pilipović a.k.a. Ugly Fingers Bradley f.k.a. bluesman
I don't always know what I'm talking about but I know I'm right!
|