我将LINESTRING()
的路线的GPS坐标存储在一行中。当我想处理这些数据时,我需要使用其他功能,即X()
,Y()
,ASTEXT()
,GEOMFROMTEXT()
等。
我在想,如果不是更好的另一张表,其中一个GPS坐标将存储在一行中。因此,对于每个路由,我将在该表中有N行。
我的问题是,您认为,如果速度更快,或者更好地存储每条路线一行LINESTRING()
的路线的GPS坐标?
答案 0 :(得分:0)
如果我是你,我肯定会创建一个每行有一个纬度/经度对的新表。这是经典的规范化数据库格式。
确保包含一列,允许您按正确的顺序放置每条路线的点。例如,
route_id int (fk to route table)
point_seq int (counts the points in the route 0,1,2, etc)
lat float
lon float
在此设计方案中,表的主键是(route_id, point_seq)
您可能想要创建复合索引(lat, lon, route_id, point_seq)
以允许efficient coverage位置查询。
LINESTRING
和朋友是OpenGIS extension to MySQL的一部分。有一些使用该扩展的映射系统。但是,它具有复合空间/非空间索引不可用的关键缺点(现在)。这减缓了很多空间查询。