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

Postgres docs状态:

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

  • 我的解释方式,如果需要查询很多,请使用GIN;如果需要更新很多,请使用GiST。

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

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

    最佳答案

    这些文件说明了“一般情况”。

    但是,您不是“一般”运行PostgreSQL,而是在具有特定使用模式的特定硬件上运行PostgreSQL。

    所以-如果您很在意,则需要自己进行测试。 GiST索引将始终需要重新检查其条件。但是,如果您运行的查询最终还是进行了进一步的检查,则GIN索引可能不会在那里胜出。此外,还有所有有关缓存使用情况的常见问题等。

    就我的使用而言,在更新速度适中的小型数据库上,我对GiST感到很满意。我发现GIN的速度提高了50%(在整个查询中),但慢速索引并不值得。如果我要构建一个巨大的存档服务器,则可能会有所不同。

    关于postgresql - Postgres Hstore : GIN vs GiST index performance,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20416932/

    10-11 01:34