Postgresql 中文操作指南

69.1. Introduction #

SP-GiST 是空间分区 GiST 的缩写。SP-GiST 支持分区的搜索树,这有助于开发各种不同的非平衡数据结构,例如四树、k-d 树和基数树(字典树)。这些结构的共同特点是它们重复地将搜索空间划分为不必等大小的分区。与分区规则非常匹配的搜索可以非常快。

这些流行的数据结构最初是为内存中使用而开发的。在主内存中,它们通常设计为一组通过指针链接的动态分配节点。这不适合直接存储在磁盘上,因为这些指针链可能相当长,需要太多磁盘访问。相反,基于磁盘的数据结构应该有较高的扇出,以最大限度减少 I/O。SP-GiST 解决的挑战是将搜索树节点映射到磁盘页面中,这样即使搜索遍历了许多节点,它也只需要访问几个磁盘页面。

与 GiST 一样,SP-GiST 旨在允许数据类型领域的专家(而不是数据库专家)通过适当的访问方法开发自定义数据类型。

此处的一些信息源自普渡大学的 SP-GiST 索引项目 web site。PostgreSQL 中的 SP-GiST 实现主要由 Teodor Sigaev 和 Oleg Bartunov 维护,并且在他们的 web site 上有更多信息。