我想提高我需要使用的Postgrsql db中表查询的性能。
CREATE TABLE mytable (
article_number text NOT NULL,
description text NOT null,
feature text NOT null,
...
);
该表仅是示例,但事实是没有唯一的列。 article_number
是where
子句中使用的那个,但是例如article_number='000.002-00A'
可以具有3到300行。行的总数是102,165,920。在这种情况下使用的最佳索引是什么?
我知道在postgres中有B树,哈希,GiST,SP-GiST,GIN和BRIN索引类型,但是哪一种最适合此。
如果查找在article_number
上进行过滤,则应在该索引上创建一个索引。不太确定您还在问什么。
默认索引是btree,它将正常工作。如果您仅检查严格相等性,hash
也可以选择,但是在Postgres 10之前它有问题,所以我不建议这样做。
[其他索引类型用于更复杂形式的查询或自定义数据类型,如果您只想执行相等过滤器,甚至没有理由考虑它们。