我有一个包含 200k 个条目的表,其中包含 INT 列。我想创建一个索引以使查询更快。这是我要执行的查询:SELECT A,B,C,D,E FROM table WHERE A=23 and (B=45 or C=43)
。我创建了以下索引:B
, ACD
, C
, ABC
.
通过该EXPLAIN
命令,我发现 MySQL 选择了 index ACD
。所以我不断地用更多的值填充表,我意识到 MySQL 在上面的索引之间切换(并不总是相同的)。
由于有许多插入,拥有各种索引会导致性能问题,我们可以假设该表被其他需要不同列的查询访问,其中每个索引都有意义。
我知道USE INDEX()
,但我想了解我们是否应该信任 MySQL 来选择正确的索引。