база данных h2 поддерживает индекс префикса? - PullRequest
0 голосов
/ 10 апреля 2020

У меня есть таблица со столбцом типа TEXT / CLOB, который необходимо проиндексировать:

CREATE TABLE test (id INT PRIMARY KEY, val VARCHAR(512))

, но этот индекс занимает слишком много места:

CREATE INDEX test_val ON test(val)

Можно ли создать индекс только с префиксом этого столбца? например, индекс префикса MySQL:

CREATE INDEX test_val ON test(val(20))

1 Ответ

2 голосов
/ 10 апреля 2020

H2 никак не поддерживает частичные индексы. Вот запрос связанной функции: https://github.com/h2database/h2database/issues/2054

H2 поддерживает индексы для сгенерированных столбцов, поэтому вы можете создать сгенерированный столбец на основе вашего исходного столбца (AS SUBSTRING(ORIGINAL_COLUMN FROM 1 FOR 20)) и индексировать его, но вам нужно будет указать значение этого столбца в ваших SELECT запросах; в противном случае его индекс не будет использоваться.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...