名前と別のフィールドで検索するMySQL(ストアドプロシージャで使用)のクエリがあります。これらの検索パラメーターのさまざまな組み合わせを使用すると、迅速な結果(1〜2秒)が得られますが、特定の値を使用すると、本番Webサイトで結果を返すのに9秒かかるクエリが得られます。以下は、EXPLAINステートメントから得たものです。
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
名前はvarchar(40)として宣言され、他のフィールドはUnsigned smallint(6)です。クエリで使用されている名前(IX_Name)の最初の15文字にインデックスを使用しています。遅いクエリでは、EXPLAIN出力の「rows」列でチェックするために非常に多くの行が取得されることがわかります。
パフォーマンスを向上させるために何ができるかわかりません。上記のEXPLAIN出力に目立った問題はありますか?
ありがとう、ティム