Utilisation des indexes MySQL lors du recours à une fonction dans la condition where

June 12th, 2007

Voici la phrase du jour ;-)

MySQL won’t/can’t use indexes where you apply a function to a column in a where condition.

Par exemple, si vous faites comme ceci, les indexes ne seront pas utilisés.

SELECT * FROM ma_table WHERE DATE(date_insert) = '2007-05-01' ;

Mieux vaut contourner le problème en faisant cela, même si il y a peut être plus élégant comme solution.

SELECT * FROM ma_table WHERE date_insert BETWEEN '2007-05-01' AND '2007-05-02' ;

Dans ce dernier cas, les indexes seront utilisés, et la requête sera beaucoup plus rapide !

Source : Forum de MySQL Performance

Comments are closed.