【发布时间】:2021-12-17 22:59:47
【问题描述】:
假设我想在表my_table 中查找在数组列my_array_column 的第一个位置具有值5 的行。为了准备表格,我执行了以下语句:
CREATE TABLE my_table (
id serial primary key,
my_array_column integer[]
);
CREATE INDEX my_table_my_array_column_index on "my_table" USING GIN ("my_array_column");
SET enable_seqscan TO off;
INSERT INTO my_table (my_array_column) VALUES ('{5,7,10}');
现在,查询可能如下所示:
select * from my_table where my_array_column[1] = 5;
这可行,但它不使用创建的 GIN 索引。是否可以通过索引在特定位置搜索值5?
【问题讨论】:
标签: postgresql indexing postgresql-performance partial-index