mysql - 实际会使用多少索引?

标签 mysql indexing

我正在编写一个执行非常简单的搜索查询的页面,结果如下:

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/

相关文章:

c# - 减少 C# 上 MySQL 的超时异常

mysql - 在 drupal 中使用枚举

matlab - 索引/访问 MATLAB 嵌套结构

sql - 优化 SQL 表的性能 - 索引

sql-server - 使用 FTS 进行搜索相对于在索引列上使用 LIKE 进行搜索的性能有何提升)?

sql - 查找类别交集的最新条目

mysql - 选择 MySQL 表中每个值的最大值

mysql - SQL - 根据其他表中的数据从表中选择项目?

matlab - 在Matlab中总结每第n行

sql - 通过对行进行排序来优化 MySQL