[Php-it] scelte prestazionali

Luca 'Ziabice' Gambetta lucagambetta at tiscali.it
Sun Oct 1 12:35:02 CEST 2006


On Thursday 28 September 2006 16:19, Emiliano Gabrielli (aka AlberT) wrote:
> tentativo di metafora a parte... se fai una select sola, per poi farti
> laricerca nel result da php non fai che
> 1) caricare la rete con tonnellate di dati inutili, al solo scopo di
> buttarli 2) caricare la RAM del web server con gli stessi dati allo stesso
> scopo 3) far lavorare 1 script PHP su tali dati per un tempo non
> necessario.. e quindi diminuire il numero di pagine che la macchina "web
> server" può servire contemporaneamente
> 4) evitare al DBMS parte del lavoro ... *quel* lavoro per cui è progettato
> ed ottimizzato ... eviti al DBMS di fare il *suo* lavoro

Eh, in teoria va bene (inutile che ti dica che io la penso esattamente come 
te), ma in pratica spesso non è così. Ti porto un caso reale.
Tempo fa sono stato costretto a far fare tutte le operazioni su un db a php 
perché semplicemente il db server si coricava. Lo scenario era una tabella 
mysql (invero normalizzata molto male) con circa 1 milione di record di cui 
ovviamente ne prendevo una parte (tra i 20 e i 100 mila record, a seconda dei 
casi) e che dovevo incrociare con altre tabelle per eseguire delle 
sincronizzazioni.
Sono stato costretto dalla pochezza delle performance a ricorrere a più 
tabelle temporanee, elaborazioni via php e altri accorgimenti solo per vedere 
la fine nel processo di elaborazione. Grazie a questi giochetti ogni volta 
per fare un test ci mettevo 20-30 minuti, ed era già una fortuna...

-- 
"Uhm... l'ho detto o l'ho solo pensato?"
.::. Ziabice aka Luca Gambetta .::.


More information about the Php-it mailing list