1

是否可以使用 Postgres 创建 B+ 树?我的要求是我需要在数据库中的某个列上创建 B+ 树索引。与该节点相关联,存在一个键,并且每当 B+ 树的这个特定节点是访问我需要检索这个键值。是否可以使用 Postgres 实现这一点?是否可以导出使用 Postgres 创建的索引并将其存储在另一个索引服务器中?

4

1 回答 1

3

您使用的术语“B+tree”与“B-tree”不同吗?如果是这样,Postgres 文档中的以下链接可能会有所帮助:http ://www.postgresql.org/docs/current/static/xindex.html 。我完全没有创建自定义索引的经验,所以我不能确定该链接是否对您有太大帮助。

此外,在文档中:http ://www.postgresql.org/about/ ,有一个部分包含:

GiST(广义搜索树)索引是一个先进的系统,它汇集了各种不同的排序和搜索算法,包括 B-tree、B+-tree、R-tree、部分和树、排名 B+-tree 和许多其他算法。它还提供了一个接口,允许创建自定义数据类型以及用于搜索它们的可扩展查询方法。因此,GiST 提供了指定存储内容、存储方式的灵活性,以及​​定义新的搜索方式的能力——这些方式远远超过了标准 B-tree、R-tree 和其他通用搜索所提供的方式算法。

GiST 是许多使用 PostgreSQL 的公共项目的基础,例如 OpenFTS 和 PostGIS。OpenFTS(开源全文搜索引擎)为数据库搜索提供数据的在线索引和相关性排名。PostGIS 是一个在 PostgreSQL 中添加对地理对象的支持的项目,允许它用作地理信息系统 (GIS) 的空间数据库,就像 ESRI 的 SDE 或 Oracle 的 Spatial 扩展一样。

因此,您似乎可以扩展或创建自己的 b+tree 索引。

于 2013-08-05T02:55:34.343 回答