Arrays 在PostgreSQL中创建包含标量列和数组列的多列索引

Arrays 在PostgreSQL中创建包含标量列和数组列的多列索引,arrays,postgresql,indexing,Arrays,Postgresql,Indexing,为了优化复杂的PostgreSQL查询,我尝试创建一个包含标量字符串和数组的索引,并支持数组操作(@>,,),您需要分别安装额外的模块或,它们提供缺少的运算符类 每个数据库运行一次: 然后,您应该能够创建多列索引: CREATE INDEX idx1 ON "MyTable" USING gin ("Varchar_1", "Array_1", "Array_2", "Array_3", "Varchar_2"); 详情: 至于数组类型上的索引:GIN是这些类型的完美索引类型 GIN

为了优化复杂的PostgreSQL查询,我尝试创建一个包含标量字符串和数组的索引,并支持数组操作(
@>
),您需要分别安装额外的模块或,它们提供缺少的运算符类

每个数据库运行一次:

然后,您应该能够创建多列索引:

CREATE INDEX idx1 ON "MyTable" USING gin
  ("Varchar_1", "Array_1", "Array_2", "Array_3", "Varchar_2");
详情:

至于数组类型上的索引:GIN是这些类型的完美索引类型

GIN索引是反向索引,可以处理包含 多个键,数组,例如

我的。
运算符
@>
正如我所说,
btree\u gist
只增加了对普通数据类型的支持。尝试使用数组字段创建多列gist索引,您将看到与我在问题中提到的完全相同的异常情况。@LeonidBeschastny:啊,我明白了。数组类型没有gist索引。为什么要从开始?使用这些的GIN索引。索引使用绑定到使用的运算符:。如果仍然不清楚,我建议您开始一个新问题,详细说明您的用例。
CREATE INDEX idx1 ON "MyTable" USING gin
  ("Varchar_1", "Array_1", "Array_2", "Array_3", "Varchar_2");