J'ai une requête MySQL (sous MySQL 5.0.88), que j'essaie d'accélérer. La table sous-jacente a plusieurs index et pour la requête en question, le mauvais index est utilisé (i_active
- 16 000 lignes, par rapport à i_iln
- 7 lignes).
Je ne suis pas très familiarisé avec MySQL, mais il existe un indice use index
qui peut forcer MySQL à utiliser un certain index. J'essaye comme ça:
SELECT art.firma USE INDEX (i_iln)
...
mais cela produit une erreur MySQL.
Question :
Quelqu'un peut-il me dire ce que je fais mal? (Sauf en cours d'exécution 5.0.88, que je ne peux pas changer.)
select * from table use index (idx);
parfois, avec use index (nom_index), l’optimiseur peut passer à l’analyse de table. Si vous utilisez hint force index, l’optimiseur sera forcé d’utiliser index. les lignes avec index fourni.
SELECT art.firma FROM art FORCE INDEX (i_iln);
pour plus de détails sur les astuces USE INDEX et FORCE INDEX, cochez lien