2016-11-28 33 views
0

是否有可能在MySQL中創建的索引與此類似(PostGIS的):創建空間索引(PostGIS的VS MySQL的)

CREATE INDEX spatial_indx_test ON spatial_test USING gist(st_makeline(st_makepoint(x1,y1), st_makepoint(x2,y2))); 

,其中X1,X2,Y1,Y2是存儲在雙鍵入的數字表:spatial_test。基本上有一種方法可以對不是直接在表中的列進行索引的數據?我試過像這樣的水漬:

CREATE SPATIAL INDEX spatial_indx_test ON spatial_test (LineString(Point(x1,y1), Point(x2,y2)); 

但是它在MySQL中不起作用。有沒有解決方法?

回答

0

可以創建在幾何例如spation指數:

CREATE TABLE的geom(克GEOMETRY NOT NULL空間索引(G)) ENGINE = MyISAM數據;

你可以找到更多在這裏http://dev.mysql.com/doc/refman/5.7/en/creating-spatial-indexes.html這裏https://dev.mysql.com/doc/refman/5.7/en/using-spatial-indexes.html

+0

謝謝回答。是的,MySQL允許我在特定列上創建索引,但是在我的表中沒有任何包含空間數據的列。該日期是在查詢中創建的。在PostGIS中,可以對下列項進行索引:'(st_makeline(st_makepoint(x1,y1),st_makepoint(x2,y2)))'其中x1,x2,y1,y2是來自表nad的字段不是空間的。所以簡而言之,在表中,我有正常的數據(點的座標),並在查詢中我從它們(LineString)製作空間數據,並且我想對這些數據進行索引。有沒有可能在MySQL中,或者我應該使用這些行另一個表,然後使索引? –

+1

如果你正在使用postgis或mysql空間擴展爲什麼在地球上保存x,y在單獨的列? – e4c5