PostgreSQL:GIN还是GiST索引?

前端之家收集整理的这篇文章主要介绍了PostgreSQL:GIN还是GiST索引?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
从我可以找到什么信息,他们都解决了相同的问题 – 更深奥的操作,如数组包含和交集(&&& @,< @等)。然而,我会感兴趣的建议,什么时候使用一个或另一个(或不可能)。
PostgreSQL documentation有一些关于这方面的信息:

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

然而,我会特别感兴趣的是,当内存到索引大小开始变小(即索引大小变得比可用内存大得多)时是否有性能影响?我被告知在#postgresql IRC通道,GIN需要保持所有的索引在内存中,否则它将不会有效,因为不同于B-Tree,它不知道从磁盘读入哪个部分一个特定的查询?问题是:这是真的(因为我也被告知与此相反)? GiST有同样的限制吗?使用这些索引算法时,我应该注意的其他限制吗?

首先,你需要使用它们进行文本搜索索引吗? GIN和GiST是某些数据类型的专用索引。如果你需要索引简单的char或整数值,那么正常的B-Tree索引是最好的。
无论如何,Postgresql文档有一个章节 GIST和一个在 GIN,在那里你可以找到更多的信息。 而且,最后但并非最不重要的是,找到最好的方法生成样本数据(尽可能多地是一个真实的场景),然后创建一个GIST索引,测量创建索引所需的时间,插入一个新值,执行一个示例查询。然后删除索引并对GIN索引执行相同操作。比较的值,你会有你需要的答案,根据你的数据。
原文链接:https://www.f2er.com/postgresql/193499.html

猜你在找的Postgre SQL相关文章