我有一个如下所示的 SQL 查询:
SELECT *
FROM table
WHERE ARRAY['entry1', 'entry2'] && array_column
array_column可以有数千个条目,而输入通常只有几个。array_column 是类型character varying[]
我有一个相当新的 PostgreSQL (9.2) 版本。什么是正确的索引?
我有一个如下所示的 SQL 查询:
SELECT *
FROM table
WHERE ARRAY['entry1', 'entry2'] && array_column
array_column可以有数千个条目,而输入通常只有几个。array_column 是类型character varying[]
我有一个相当新的 PostgreSQL (9.2) 版本。什么是正确的索引?
您应该为此使用GIN
索引。另请参阅手册的这一部分:http ://www.postgresql.org/docs/current/static/indexes-types.html
请注意,它仅在使用数组运算符时才有效(您正在使用的&&
是其中之一)。
您可以在此处找到有关 Gin 索引的更多信息:http ://www.postgresql.org/docs/9.3/static/gin.html