0

在 SQL 中,很明显,每当我们想要对数百万条记录进行搜索时,比如 Transactios 表中的 CustomerID,那么我们想要为 CustomerID 添加一个索引。

当我们需要使用该字段作为标准进行内部联接或外部联接时,我们是否希望向该字段添加索引?如 Inner join on t1.custumerID = t2.customerID。然后,如果我们在两个表上都没有关于 customerID 的索引,我们正在查看 O(n^2),因为我们需要按顺序遍历这两个表。如果我们在两个表上都有 customerID 索引,那么它变成 O( (log n) ^ 2 ) 并且速度要快得多。

我们想在表中的字段中添加索引的任何其他情况?

为表中组合的 2 个字段添加索引怎么样。也就是说,一个索引,2个字段在一起?

4

2 回答 2

2

ORDER BYand子句上经常使用的字段WHERE也是索引的良好候选者。

于 2010-04-25T10:42:16.840 回答
0

如果您总是在两个字段上选择或在一个字段上选择并在另一个字段上排序,您可能需要考虑两个字段上的索引。

如果第一列的基数太小以至于可能导致索引倾斜,您可能还希望将第二个字段包含到复合索引中。这通常是具有有限(例如 3 或 4 个)可能值的状态字段的情况,因此包括具有多种值的字段,例如您通常排序的日期时间字段将产生更高性能的索引。

于 2010-04-25T10:48:42.410 回答