Bonjour,

Je m'arrache les cheveux concernant l'optimiseur sur une requête du style :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
SELECT *
 FROM MemoryTable m, MyIsamTable t
WHERE m.Id = t.Id /* PRIMARY KEY */
AND t.value = 'toto'
Selon la valeur 'toto', il utilise l'index (PRIMARY KEY) ou non. L'optimiseur doit donc se baser uniquement sur la cardinalité/selectivité...
Mais si je tente de forcer l'index pour une valeur où il ne l'utilise pas naturellement, rien à faire ! (Alors que je sais que la requête serait bien plus rapide avec l'index ! J'ai essayé FORCE INDEX, USE INDEX, ... FOR JOIN, etc.).

Si quelqu'un a des idées...