Utilisation des indexes MySQL lors du recours à une fonction dans la condition where
June 12th, 2007Voici 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


