Pogledajte određenu poruku
Staro 17. 03. 2006.   #1
Pedja
Predrag Supurović
Grand Master
 
Datum učlanjenja: 24.01.2006
Lokacija: Užice
Poruke: 791
Hvala: 3
200 "Hvala" u 12 poruka
Pedja is on a distinguished roadPedja is on a distinguished roadPedja is on a distinguished road
Default 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?
Priloženi fajlovi
Tip fajla: zip jointest.zip (2,0 KB, 695 pregleda)
Pedja je offline   Odgovorite uz citat