因为列y不是索引的搜索键的一部分,所以它不必是索引能够处理的数据类型;它只是存储在索引中,而不是由索引机器解释。此外,如果索引是唯一索引,即CREATE UNIQUE INDEX tab_x_y ON tab(x) INCLUDE (y);,则唯一性条件仅适用于列x,而不适用于x和y的组合。(还可以在唯一和主键约束中写入INCLUDE子句,为设置这样的索引提供替代语法。)明智的做法
可以在创建主键时指定索引:ALTER TABLE t ADD PRIMARY KEY (a,b) USING INDEX (CREATEINDEX i ON t(a,b));ALTER TABLE t ADD PRIMARY KEY (a) USING INDEX (CREATE INDEX i ON t(a,b));
我更喜欢唯一的索引(因为一个非唯一的索引会将rowid