我在 MySQL 中有一个查询(用于存储过程),它按名称和另一个字段进行搜索。当我使用这些搜索参数的不同组合时,我会得到快速的结果(在 1 到 2 秒之间),但对于一些特定的值,我会得到一个需要 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 输出的“行”列中检查大量行。
我不确定我能做些什么来提高性能。上面的 EXPLAIN 输出有什么明显的错误吗?
谢谢,蒂姆