Table of Contents
SP-GiST 是 space-partitioned GiST 的缩写。SP-GiST 支持分区搜索树,这使得开发多种不同的 非平衡数据结构成为可能,例如四叉树、k-d 树以及基数树(trie)。这些结构 的共同特征是,它们会反复将搜索空间划分为不必等大的分区。与这种划分规则良 好匹配的搜索可以非常快。
这些常见数据结构最初是为内存中使用而开发的。在主存中,它们通常被设计成一 组由指针链接的动态分配结点。由于这些指针链可能相当长,直接存储到磁盘上并 不合适,因为那会需要过多的磁盘访问。相比之下,基于磁盘的数据结构应当具有 较高的扇出,以尽量减少 I/O。SP-GiST 要解决的难题是, 如何以这样的方式将搜索树结点映射到磁盘页:即使搜索遍历了许多结点,也只需 访问少数几个磁盘页。
像 GiST 一样,SP-GiST 的目标是让 数据类型领域专家而非数据库专家,能够针对自定义数据类型开发合适的访问方法。
这里的一些信息来自普渡大学的 SP-GiST 索引项目 网站。 SP-GiST 在 PostgreSQL 中的实现主要由 Teodor Sigaev 和 Oleg Bartunov 维护,他们的 网站 上还有更多信息。
如果您发现文档中有不正确的内容、与您使用特定功能的经验不符或需要进一步说明,请使用此表单来报告文档问题。