-1
我有一個超過200,000 +行的表& 81列。我有31個指標。昨天我在一列上添加了一個新索引。現在,當我在where子句中單獨使用該列時,結果非常快。但只要我在不同的索引列的where子句中添加另一個條件,查詢就會變慢。對於例如,如果我有columsn C1,C2,C3,C4與索引,所有查詢:Mysql索引怪異行爲
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秒。
幫助非常必要。由於
您是否嘗試添加[複合索引](https://dev.mysql.com/doc/refman/5.0/en/multiple-column-indexes.html)? – namezero
您可能想查看覆蓋索引。 –
使用'EXPLAIN'來分析查詢。不要索引所有內容。索引不是幻想的獨角獸,你希望事情變得更快。總是指定你的數據集大小,不管你是否使用'InnoDB',如果是,你的'innodb_buffer_pool_size'變量的值是什麼。此外,81列和31索引的東西只是尖叫「請刪除我,並規範我以備將來使用」。 –