Skip to content

11.11. 索引和排序规则#

一个索引只能支持每个索引列一种排序规则。如果需要多种排序规则,可能需要多个索引。

考虑以下语句

CREATE TABLE test1c (
    id integer,
    content varchar COLLATE "x"
);

CREATE INDEX test1c_content_index ON test1c (content);

索引会自动使用底层列的排序规则。因此,形式为

SELECT * FROM test1c WHERE content > constant;

的查询可以使用索引,因为比较默认会使用该列的排序规则。但是,此索引无法加速涉及其他排序规则的查询。因此,如果形式为(例如)

SELECT * FROM test1c WHERE content > constant COLLATE "y";

的查询也需要,则可以创建另一个支持"y"排序规则的索引,如下所示

CREATE INDEX test1c_content_y_index ON test1c (content COLLATE "y");