我有一张超过200,000行的表格& 81列。我有31个索引。昨天我在一列上添加了一个新索引。现在,当我在where子句中单独使用该列时,结果非常快。但是只要我在不同索引列的where子句中添加另一个条件,查询就会变慢。例如,如果我有columsn c1,c2,c3,c4和索引,所有查询如:
select c1,c2 from table1 where c1=a and c2=b and c3 = d
非常快。但是当我在现有列c5上添加新索引时,查询如下:
select c5 from table1 where c5>a
很快,但只要我添加新的条件,如
select c5 from table1 where c5>a and c1=b
查询变慢。当我说慢时,它慢15-20倍。快速查询需要0.2秒,慢查询需要3-4秒。
非常需要帮助。谢谢
答案 0 :(得分:0)
首先,您可以使用复合索引(多于1个字段的索引)
其次,您可以将查询计划检查为
EXPLAIN SELECT [...]
(当然用实际的选择陈述。)
如果可以显示
的输出SHOW CREATE TABLE
以及慢查询的解释,我们可以弄清楚要做什么。