MyTable (
PKSubset INTEGER UNSIGNED,
PKSubset2 SMALLINT UNSIGNED,
NonPkAttribute TINYINT UNSIGNED NOT NULL,
CONSTRAINT pk_mytbl PRIMARY KEY (PKSubset, PKSubset2),
)
鉴于上面的表,PKSubset和PKSubset2的各个属性是否自动编入索引,因为它们是主键的一部分?或者只是索引的整个主键(PKSubset,PKSubset2)?
对于不同的数据库,答案可能不同,我对H2数据库的情况特别感兴趣。但是,欢迎并赞赏其他数据库的答案!
答案 0 :(得分:2)
来自Database Performance Tuning部分:
索引使用
此数据库使用索引来提高SELECT,UPDATE,DELETE的性能。如果在查询的WHERE子句中使用了列,并且此列上存在索引,则可以使用索引。如果使用索引的所有或第一列,则使用多列索引。
对于大多数RDBMS来说,这是相当典型的。您只获得一个复合主键的索引,但此索引可用于PKSubset
列上的查询{em>或 PKSubset
PKSubset2
列; 不仅适用于PKSubset2
上的查询。