考虑一个表有2列,
如果必须在此表上应用索引,他应该选择哪个列进行索引?为什么?
答案 0 :(得分:2)
创建索引最重要的考虑因素是,如果您对该字段执行搜索,那么数据类型就无关紧要了。
现在,虽然更有效的值是索引更有效,因为您可以更快地丢弃行。如果大多数行相同,则索引将与FULL SCAN
所以,如果你有像
这样的查询 SELECT * FROM Table WHERE fieldA = Value;
SELECT * FROM Table WHERE fieldB = Value;
您需要两个索引,每个字段一个
但如果你有像
这样的查询 SELECT * FROM Table WHERE fieldA = Value
AND fieldB = Value;
你想要两个字段(fieldA,fieldB)
的composte索引最后提示是您要在选择
上返回单个值 SELECT fieldB FROM Table WHERE fieldA = Value;
您还需要一个复合索引,因为您将在索引中搜索Value,而不必在表上进行查找以获取fieldB
的值,因为它已经在索引上。