Natalino

Picone

Tech machine


Ottimizzazione Mysql

settembre 3, 2005Nat0 Comments

Dopo un pò di studio ho scoperto che per Mysql l’ordine dei campi negli indici multipli è importante.

Faccio un esempio, prendiamo la seguente query:
select * from tabella
where
campoa in (‘N’,’F’,’comm’) and
campob <> ‘25566’ and
campoc = ‘0’
order by campod desc
limit 3;

Mysql usa un indice per ottimizzare la query se l’indice viene creato in questo ordine:
alter table tabella add index mult (campoc, campoa, campod);
se invece l’indice è creato così
alter table tabella add index mult (campod, campoc, campoa);
l’indice non viene usato.

Non si finisce mai di imparare :)