【发布时间】:2013-12-23 09:26:01
【问题描述】:
我必须决定是对 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%。
哪种信息来源更可靠,为什么?
【问题讨论】:
-
我会更进一步说“使用 GiST,除非你有本质上是静态的数据”。部分性能差异可能与您拥有的 RAM 有关。如果整个索引(大于 GiST)不适合 RAM,GIN 索引的好处就会消失。
标签: postgresql indexing gwt-gin gist-index