PHP brzi od MySQL-a u izvlacenju lookup vrednosti?!?!?
Nesto diskutovah sa prijateljem i on mi na delu pokaza da je PHP brzi do MySQL-a u izvlacenju lookup vrednosti iz sifarnika.
Radi se o sledecem. Imamo dve tabele:
master (
master_id int(10) unsigned NOT NULL auto_increment,
category_id int(10) unsigned ,
PRIMARY KEY (master_id)
i
categories (
category_id int(10) unsigned NOT NULL DEFAULT '0' ,
description varchar(30) ,
PRIMARY KEY (category_id)
Tabela master ima veliki broj slogova, a potrebno je prikazati sve slogove tako da se umesto category_id prikazuje categories.description.
Ja sam zagovarao da to treba uraditi preko SQL JOIN a on da je bolje prvo pokupiti vrednosti iz categories u array, ond auraditi select iz master i priliom prikazivanaj svakog sloga, rucno iz array vaditi description i prikazivati ga.
Covek je napravio test i pokazao da stvarno PHP to radi znacajno brze nego SQL JOIN.
U prilogu je arhiva sa testom, tako da mozete i sami da probate.
Ja sve mislim da tu ima neka kvaka, mada mi nije jasno koja. Obratio sam paznju, i cak je zauzece memorije otprilike podjednako kada se radi na oba nacina, samo sto PHP to uradi brze.
U testu imate skript koji generise testne podatke, u jednom prolazu puni bazu sa 40000 slogova. Ako zelite vise slogova samo vise puta pokrenite taj skript.
Na vecem broju slogova PHP ispadne i do 25% brzi.
Moze li neko ovo da objasni?
|