我有一个包含这些列的SQL表(id,A,B,C,D,E)。
我通常在(A和C)和(B和C)上查询,所以我决定在这些上有索引3.有一些选项:
我应该选择哪个选项?数据库大小可能是一个问题,但我们假设它现在不是什么大问题。
答案 0 :(得分:2)
在两对上建立一个索引。对于大多数索引(尽管这可能因类型和数据库而异),如果仅查询A,则使用A,B上的索引,但如果仅查询B,则不使用A,B。因此,请确保第一列中的您的索引是您查询的列。如果查询A,B和A,C,而不是单独查询B或C,则只需要这两对上的索引。
答案 1 :(得分:1)
如果存储/空间利用率很重要,那么在A和B上添加两个单列索引。
如果这些查询的性能更为关键,则添加两个复合索引,一个在(A,C)上,另一个在(B,C)上。
如某人已经评论过,这些建议都是有根据的猜测。尝试使用各种选项来找到最佳索引策略是一个好主意。