DB2索引设置

DB2索引设置,db2,Db2,我正在浏览一些表源代码,我不确定索引是如何工作的。这是我看到的例子 CREATE INDEX INDEXNAME ON AWARD ( AWARD_ID, CUST_ID ); 我不明白参数值是什么意思。是每个单独列的索引,或者将其组合在一起成为索引。它是一个包含两个字段的索引。索引通常用于选择、连接、分组和/或排序 要实现的关键是多列索引从左到右都很有用 对于选择,如果您有一个where子句 WHERE AWARD_ID = 123 AND CUST_ID = 456 如果也有帮助的话 W

我正在浏览一些表源代码,我不确定索引是如何工作的。这是我看到的例子

CREATE INDEX INDEXNAME ON AWARD ( AWARD_ID, CUST_ID );

我不明白参数值是什么意思。是每个单独列的索引,或者将其组合在一起成为索引。

它是一个包含两个字段的索引。索引通常用于选择、连接、分组和/或排序

要实现的关键是多列索引从左到右都很有用

对于选择,如果您有一个where子句

WHERE AWARD_ID = 123 AND CUST_ID = 456
如果也有帮助的话

WHERE AWARD_ID = 123
WHERE CUST_ID = 456
但可能不会(直接)有助于

WHERE AWARD_ID = 123
WHERE CUST_ID = 456
因为索引最左边的列(奖励ID)没有被引用

连接以类似的方式工作

--index useful
FROM TBLA JOIN AWARD USING (AWARD_ID,CUST_ID)
 or
FROM TBLA JOIN AWARD USING (AWARD_ID)
--index NOT useful
FROM TBLA JOIN AWARD USING (CUST_ID)
排序和分组也是如此

如果您碰巧正在使用DB2 for IBM i,那么下面的文章是一篇很棒的资源:

如果使用DB2LUW,那么关于位图索引的部分可能适用,但忽略关于EVI索引的信息。还可以查看DB2LUW信息中心中的规划和性能子部分索引

这是一个索引,恰好索引了两个字段,奖励id和客户id。仅此而已。非常感谢,谢谢。您能推荐一个好的db2资源供参考吗?IBM网站读起来非常糟糕,而且示例解释得也不太好。对于这类事情,它只是简单的标准sql。这被称为复合键。键由多个字段组成。