【发布时间】:2012-04-06 00:57:05
【问题描述】:
在我的表格中,我有两个密切相关的列 A 和 B。我应该考虑哪些可能的因素来决定是否创建:
- 索引(A)和索引(B),
- 索引(A,B),
- 以上两种?
如果我:
- 只使用
where A = 5 and B = 10之类的查询(而永远不要使用where A = 5之类的查询), - 也可以使用
where A > 3 and A < 10 and B > 12 and B < 20之类的查询, - 经常使用
order by (A, B), - 经常使用
group by (A, B)?
注意:我故意没有提供有关我的特定案例的更多详细信息,因为我想要一个通用的答案,也将对其他人有用。我使用 mysql,但如果您给出涵盖 SQL 的更一般的答案,那就太好了。
【问题讨论】:
-
请注意,我已经阅读了this question,但它并没有涵盖我的所有问题。
-
在查询中尽可能多地使用 EXPLAIN,并尝试各种索引配置。这应该很有启发性!
标签: mysql sql database indexing