功能
mysql spatial extension
postgis
空間索引
僅myisam支援r樹索引,innodb不支援
gist樹索引(r樹的變種)
支援的空間類型
僅二維資料
二維、三維以及曲線
空間操作函數
有限的空間函數
基本實作ogc标準定義的空間操作函數
例:想查找藍色多邊形内的點,mysql空間擴充僅能查出在最小外包矩形(紅色框)内的點,而postgis能查出任意多邊形内的點。
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLicmbw5iN2EDO3IzMxQTMzAjM3IzLcNDM0EDMy8CXwkDNyITNvwVavwVbvNmLn9GbiRXauNmLzV2Zh1Wavw1LcpDc0RHaiojIsJye.png)
空間投影
不支援
支援多種常用投影坐标系
例:想查找兩點間距離。mysql spatial僅能計算歐式空間距離,而postgis能計算不同投影坐标系下的真實空間距離
事務支援
postgis提供了一系列的長事務支援,可以有效支援複雜的空間分析功能
查詢效率
加載速度: mysql > postgis (事務)
空間索引的建立: mysql < postgis (diff split algo)
查詢: mysql postgis(不同性質查詢結果不一樣,各有千秋)
gis系統使用
使用較少
使用較多,例如openstreetmap的資料庫背景就是postgresql+postgis
小結:如果隻做一些簡單的gis或者lbs的應用,mysql提供的spatial extensions基本能夠滿足。但如果需要的功能更複雜一些,mysql spatial extensions提供的功能可能就不夠用了,這時postgresql+postgis可能将更加合适。