我正在编写一个执行非常简单的搜索查询的页面,结果如下:
SELECT * FROM my_table WHERE A in (a1, a2, a3) AND B in (b1, b2) AND C in (c1, c2, c3, c4) AND
对于可变数量的列,依此类推,通常约为 5。如果我为每一列创建一个单独的索引(一个用于 A,一个用于 B,一个用于 C,而不是 (A,B,C)),它们都会在上面的查询中使用吗?
最佳答案
优化器将尝试使用 Index Merge操作并使用三个索引。
执行前面带有EXPLAIN
的语句,以查看它可以使用和将要使用的索引。考虑一下FORCE INDEX
,看看它是否会产生影响。
EXPLAIN SELECT * FROM my_table WHERE A in (a1, a2, a3) AND B in (b1, b2) AND C in (c1, c2, c3, c4) AND
关于mysql - 实际会使用多少索引?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2918760/