假设我们有一个包含 4 列的表:A、B、C 和 D
假设我们有一些查询将加入或针对这些列执行子句:
Q1: Where A = ?
Q2: Where A = ?, B = ?
Q3: Where A = ?, B = ?, C = ?
既然我们知道我们将在三个不同的上下文中使用这些列,那么最好创建三个不同的索引吗?还是三个不同的多重索引?
索引合并:
Idx1: Create index A_idx ON table (A)
Idx2: Create index B_idx ON table (B)
Idx3: Create index C_idx ON table (C)
多重索引
Idx1: Create index A_idx ON table(A)
Idx2: Create index AB_idx ON table(A,B)
Idx3: Create index ABC_idx ON table(A,B,C)
这是一个简化的案例。假设我们有 10-15 列,它们将以不同的方式和组合进行连接或连接。是否最好为他们将收到的这些组合创建多个列索引?或者只是找到最常用的多列的最小集合,在这些列上构建多列索引,然后为其余的创建单独的索引?