11.11. Индексы и правила сортировки #
Один индекс может поддерживать только одно правило сортировки для индексируемого столбца. Поэтому при необходимости применять разные правила сортировки могут потребоваться несколько индексов.
Рассмотрим следующие операторы:
CREATE TABLE test1c ( id integer, content varchar COLLATE "x" ); CREATE INDEX test1c_content_index ON test1c (content);
Этот индекс автоматически использует правило сортировки нижележащего столбца. И запрос вида
SELECT * FROM test1c WHERE content > константа
;
сможет использовать этот индекс, так как при сравнении по умолчанию будет действовать правило сортировки столбца. Однако этот индекс не поможет ускорить запросы с каким-либо другим правилом сортировки. Поэтому, если интерес представляют также и запросы вроде
SELECT * FROM test1c WHERE content > константа
COLLATE "y";
для них можно создать дополнительный индекс, поддерживающий правило сортировки "y"
, примерно так:
CREATE INDEX test1c_content_y_index ON test1c (content COLLATE "y");