【发布时间】:2011-07-20 03:04:56
【问题描述】:
在我正在编写的软件中,可以搜索给定表格中的信息。搜索表单有5个字段,当然都对应一个表中的不同列,但是所有字段都是可选的。
我的问题是关于多列索引是否有效以及为它构建查询的正确方法。
如果我有一个跨 5 列的索引,并且我构建了一个查询来搜索它们,那么当涉及到该索引中我不搜索的字段时,我是否会执行以下操作:
field1 = 10 AND field2 > 0 AND ...
或者我根本不应该包含未使用的列?
我搜索了有关多列索引的信息,但是当您需要跳过给定索引中的一列或者您根本不关心该列时,我似乎找不到该怎么做在那个特定的情况下。
【问题讨论】:
-
这取决于...取决于查询工作量
-
尽你所能避免表扫描。这是查询没有可索引的时候。除非表行是固定长度并且很小,否则永远不要使用表扫描。比如 1-20 行。