我必须决定是否对hstore列使用GIN或GiST索引。
Postgres docs状态:
我的解释方式,如果需要查询很多,请使用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/