Ich habe eine Abfrage in MySQL (die in einer gespeicherten Prozedur verwendet wird), die nach Namen und einem anderen Feld sucht. Wenn ich verschiedene Kombinationen dieser Suchparameter verwende, erhalte ich schnelle Ergebnisse (zwischen 1 und 2 Sekunden), aber mit einigen bestimmten Werten erhalte ich eine Abfrage, die 9 Sekunden braucht, um Ergebnisse auf der Produktionswebsite zu liefern. Die EXPLAIN-Anweisung liefert folgende Ergebnisse:
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
Name ist als varchar(40) deklariert und das andere Feld ist Unsigned smallint(6). Ich verwende einen Index für die ersten 15 Zeichen des Namens (IX_Name), der in der Abfrage verwendet wird. Ich kann sehen, dass die langsamen Abfragen eine ziemlich große Anzahl von Zeilen erhalten, die in der Spalte "rows" der EXPLAIN-Ausgabe zu überprüfen sind.
Ich bin mir nicht sicher, was ich tun kann, um die Leistung zu verbessern. Ist an der obigen EXPLAIN-Ausgabe irgendetwas auffällig falsch?
Danke! Tim