Postgresql支持各种
geometric types开箱,以及许多几何
operators和
GiST indexes似乎提供数据的空间索引。
然后还有PostGIS,这是PG的扩展。
PG和PostGIS内置的空间支持有什么区别?
如果我的应用程序需要存储地理坐标(点,区域,多边形),然后有效地执行查询(如多边形点,多边形交集),我需要PostGIS或者我可以使用(可以说)更方便和更简单的构建 – 数据类型/语法?
首先我想澄清GiST索引:GiST实际上是一个框架,用于为新的数据类型创建索引,而不是任何特定的索引方案本身。这个框架恰好用于Postgres提供的几何类型,但它也用于标准文本列的三元匹配文本相似性索引,当然也被许多外部包的索引方案使用,其中我们可以数字PostGIS。
原文链接:https://www.f2er.com/postgresql/193324.html无论标准几何数据类型是否适合您或您需要PostGIS完全取决于您的应用程序。
PostGIS将几何数据存储在类型“几何”的列中;在这里你可以存储或多或少的任意数据(点,圆,多边形,有什么)。索引是快速和相当复杂:它可以做一些事情,如有损索引使用包围盒的复杂形状,不可索引的任何合理的方式否则。支持不同的空间参考系统,自动转换查询结果。 PostGIS还支持业界标准的OpenGIS格式,这有助于与其他系统共享数据。
相比之下,内部的几何类型和指数是很少复杂。没有真正的“通用”几何类型;相反,你必须选择一个列的类型是点,线,圆,多边形或什么有你的;对于组合,您可能需要使用多个列。索引不是很好;没有那么多不同类型的形状可以索引(虽然你可以通过为它们使用单独的列并手动生成边界框来添加边界框支持),并且索引在某些情况下可能不那么快。另一方面,如果内部几何类型满足您的需要,您获得的优势是,您的应用程序更容易移植到其他具有Postgres但不安装PostGIS的系统。
我的建议是玩弄内部的几何类型,看看你是如何做得很好;如果你开始遇到问题,尝试PostGIS。