H2数据库是否支持前缀索引?

时间:2020-04-10 09:31:07

标签: indexing h2 prefix database-indexes

我有一个带有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 个答案:

答案 0 :(得分:2)

H2完全不支持部分索引。这是相关的功能请求: https://github.com/h2database/h2database/issues/2054

H2支持在生成的列上建立索引,因此您可以基于原始列(AS SUBSTRING(ORIGINAL_COLUMN FROM 1 FOR 20))创建一个生成的列并为其建立索引,但是您将需要在{{1 }}查询;否则将不使用其索引。