天天看點

mysql空間擴充 VS PostGIS

功能

mysql spatial extension 

postgis

空間索引

僅myisam支援r樹索引,innodb不支援 

gist樹索引(r樹的變種)

支援的空間類型

僅二維資料

二維、三維以及曲線

空間操作函數

有限的空間函數

基本實作ogc标準定義的空間操作函數

例:想查找藍色多邊形内的點,mysql空間擴充僅能查出在最小外包矩形(紅色框)内的點,而postgis能查出任意多邊形内的點。

mysql空間擴充 VS PostGIS

空間投影

不支援

支援多種常用投影坐标系

例:想查找兩點間距離。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可能将更加合适。