[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