56.1. 介绍

SP-GiST是空间分割的(Space-Partitioned)GiST的省略语。 SP-GiST支持分区的搜索树,这有助于开发四叉树,KD树,基数树(radix tree)等范围广泛的不同的非平衡数据结构。 这些结构的共通特征是它们反复地把搜索空间划分成大小不必相等的分区。能很好的匹配分区规则的查询会非常快。

这些流行的数据结构一开始是被设计用在内存中的。 在内存中,它们通常被设计为由指针链接起来的动态分配的节点的集合。 这不适合直接在磁盘上存储,因为这些指针链相当长可能需要太多的磁盘访问。 相对的,基于磁盘的数据结构应该在最小的I/O上有很高的展开。 SP-GiST要解决的挑战是把搜索树映射到磁盘页面上,通过这种方式即使遍历很多节点也只需访问很少的磁盘页面。

GiST一样,SP-GiST允许伴随相应访问方法的定制数据类型由该数据类型领域里的专家而不是数据库专家来开发。

这里的有些信息是来自普渡大学(Purdue University)的 SP-GiST索引项目 网站PostgreSQL中的SP-GiST 实现目前主要是 Teodor Sigaev 和 Oleg Bartunov 维护的,在他们的 网站上有更多信息。