MEMORY TABLE - FORCE INDEX qui ne force pas !
Bonjour,
Je m'arrache les cheveux concernant l'optimiseur sur une requête du style :
Code:
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...