
PostgreSQL: GIN or GiST indexes?从我能找到的信息中,它们都解决了相同的问题-更深奥的运算,例如数组包含和交集(&&,@>,<@等)。但是,我会对何时使用一个或另一个(或不可能)的建议感兴趣。 PostgreSQL文档中有关于此的一些信息:
但是,我特别想知道当内存与索引大小的比例开始变小(即,索引大小变得比可用内存大得多)时,是否会对性能产生影响?在#postgresql IRC频道上,有人告诉我GIN需要将所有索引保留在内存中,否则它将不起作用,因为与B-Tree不同,它不知道要从磁盘中读取哪个部分特定查询?问题是:这是真的吗(因为我也被告知与此相反)? GiST是否有相同的限制?使用这些索引算法之一时,我还应该注意其他限制吗?
首先,您是否需要将它们用于文本搜索索引编制? GIN和GiST是专门针对某些数据类型的索引。 如果您需要索引简单的char或整数值,则通常的B树索引是最好的。 |