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

does h2 database support prefix index?

我有一个 table,其中有一个 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))

H2 不以任何方式支持部分索引。这是相关的功能请求: https://github.com/h2database/h2database/issues/2054

H2 支持生成列的索引,因此您可以根据原始列 (AS SUBSTRING(ORIGINAL_COLUMN FROM 1 FOR 20)) 创建生成列并为其编制索引,但您需要在 SELECT查询;否则它的索引将不会被使用。