功能
Mysql spatial extension
PostGIS
空間索引
僅MyISAM支持R樹索引,InnoDB不支持
GIST樹索引(R樹的變種)
支持的空間類型
僅二維數據
二維、三維以及曲線
空間操作函數
有限的空間函數
基本實現OGC標准定義的空間操作函數
例:想查找藍色多邊形內的點,mysql空間擴展僅能查出在最小外包矩形(紅色框)內的點,而postgis能查出任意多邊形內的點。
#FormatImgID_0#
空間投影
不支持
支持多種常用投影坐標系
例:想查找兩點間距離。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可能將更加合適。