Postgres hstore:GIN vs GiST索引表现

时间:2013-12-06 05:48:47

标签: postgresql indexing gin gist-index

我必须决定是否对hstore列使用GIN或GiST索引。

Postgres docs州:

  • GIN索引查找速度比GiST快三倍
  • GIN索引的构建时间比GiST要长三倍
  • GIN索引的更新速度比GiST慢十倍
  • GIN索引比GiST大两到三倍

我解释它的方式,如果你需要经常查询,请使用GIN,如果你需要更新很多,请使用GiST。

在此test中,确认了上述GIN相对于GiST的所有三个缺点。但是,除了Postgres文档中的建议外,GIN优于GiST(更快查找)的优势非常小。幻灯片53显示,在测试中,GIN仅比Postgres文档中提出的200%至300%快2%至3%。

哪种信息来源更可靠?为什么?

1 个答案:

答案 0 :(得分:4)

文件说明情况“一般”。

但是,您没有“通常”运行PostgreSQL,而是在具有特定使用模式的特定硬件上运行它。

所以 - 如果你非常关心,那么你会想要自己测试一下。 GiST索引总是需要重新检查其条件。但是,如果您运行的查询最终还是进行了进一步检查,那么GIN索引可能无法在那里获胜。还有关于缓存使用等的所有常见问题。

对于我的使用,在具有适度更新率的小型数据库上,我对GiST感到非常满意。我已经看到GIN的速度提高了50%(在整个查询中),但是速度较慢的索引并不值得。如果我正在构建一个巨大的存档服务器,它可能会有所不同。