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
查询;否则它的索引将不会被使用。
我有一个 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
查询;否则它的索引将不会被使用。