J'ai une requête dans MySQL (utilisée dans une procédure stockée) qui recherche par nom et un autre champ. Lorsque j'utilise différentes combinaisons de ces paramètres de recherche, j'obtiens des résultats rapides (entre 1 et 2) mais avec des valeurs particulières, j'obtiens une requête qui prend 9s pour retourner les résultats sur le site de production. Voici ce que je suis sorti de la EXPLAIN:Slow MySQL Query
id, select_type, table, type, possible_keys, key, key_len, ref, rows, Extra
--------------------------------------------
1, SIMPLE, Names, ref, IX_Name, IX_Name, 17, const, 3173, Using where
Nom est déclaré comme varchar (40) et l'autre champ est Unsigned smallint (6). J'utilise un index sur les 15 premiers caractères du nom (IX_Name) qui est utilisé dans la requête. Je peux voir que les requêtes lentes obtiennent un assez grand nombre de lignes à vérifier dans la colonne "rows" de la sortie EXPLAIN.
Je ne suis pas sûr de ce que je peux faire pour améliorer la performance. Y a-t-il quelque chose de sensiblement faux avec la sortie EXPLAIN ci-dessus?
Merci, Tim
Cela peut être une bonne idée de publier la requête à exécution lente. – karim79
Pourriez-vous afficher votre déclaration SQL? En outre, il peut être utile de connaître la cardinalité des noms stockés dans votre table. – DBMarcos99