我有一个带有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
查询中指定此列的值;否则将不使用其索引。