首先,我想澄清GiST索引:GiST实际上是用于为新数据类型创建索引的框架,而不是任何特定的索引方案本身。这个框架恰好用于Postgres自带的几何类型,但也用于标准文本列的三元匹配文本相似性索引,当然也用于许多外部包的索引方案中,其中PostGIS是其中之一。
是否使用标准几何数据类型或需要使用PostGIS完全取决于您的应用程序。
PostGIS将几何数据存储在“geometry”类型的列中;在此列中,您可以存储更多或更少的任意数据(点、圆、多边形等)。索引速度很快且相当复杂:它可以执行像使用边界框对无法以任何合理方式进行索引的复杂形状进行有损索引等操作。支持不同的空间参考系统,并自动转换查询结果。PostGIS还支持行业标准的OpenGIS格式,这可以帮助与其他系统共享数据。
相比之下,内部几何类型及其索引集合要简单得多。没有真正的“通用”几何类型;相反,您必须选择将列的类型设置为点、线、圆、多边形或其他几何类型;对于组合,您可能需要使用多个列。索引不够优秀;不能对许多不同类型的形状进行索引(尽管可以通过使用单独的列为它们添加边界框支持并手动生成边界框来解决这个问题),而且在某些情况下索引可能没有那么快。另一方面,如果内部几何类型满足您的需求,您将获得一个优势,即您的应用程序更容易移植到其他安装了Postgres但未安装PostGIS的系统。
我的建议是尝试使用内部几何类型,并查看其效果如何;如果遇到问题,请尝试使用PostGIS。