[Php-it] [MySQL] GROUP BY molto lento
Matteo Beccati
php at beccati.com
Thu Jun 15 12:46:03 CEST 2006
Ciao,
> devo eseguire una query che mette in INNER JOIN tra loro diverse
> tabelle, il recordset derivante e' di circa 150000 record, la query per
> essere eseguita necessita di alcuni millisecondi.
>
> L'aggiunta di un group by su di un campo aumenta il tempo di esecuzione
> in modo impressionante: si passa a piu' di 5 secondi; per avere un'idea
> del tipo di raggruppamento, dopo il group by il recordset derivante e'
> di circa 11000 record.
>
> [...]
>
> E' normale? Avete consigli per aumentare le prestazioni?
Potrebbe essere normale, dipende dalle impostazioni di mysql. Con buona
probabilità il risultato della query su cui eseguire l'aggregazione è
troppo grosso per entrare nel buffer riservato alle operazioni di sort e
la query viene eseguita paginando su disco.
Detto ciò, non uso mysql e non so esattamente quale sia la manopola su
cui agire, ma presumo possa essere sort_buffer_size:
SET SESSION sort_buffer_size = 16 * 1024 * 1024; -- 16 MB
Ciao ciao
--
Matteo Beccati
http://phpadsnew.com
http://phppgads.com
More information about the Php-it
mailing list