gpt4 book ai didi

mysql - SQL LINESTRING() 与多行

转载 作者:行者123 更新时间:2023-11-29 22:20:52 38 4
gpt4 key购买 nike

我使用 LINESTRING() 将路线的 GPS 坐标存储在一行中。当我想处理这些数据时,我需要使用另一个函数,即 X()Y()ASTEXT()GEOMFROMTEXT()

我在想,如果再有一个表,一个 GPS 坐标将存储在一行中不是更好吗?因此,对于每条路线,该表中都会有 N 行。

我的问题是,您的意见是什么,是否会更快,或者使用 LINESTRING() 将路线的 GPS 坐标存储在每条路线的一行中?

最佳答案

如果我是你,我肯定会创建一个新表,每行一对纬度/经度。这是经典的规范化数据库格式。

确保包含一列,允许您按正确的顺序放置每条路线的点。例如,

 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 和 friend 是 OpenGIS extension to MySQL 的一部分。有一些 map 系统使用该扩展。但是,它有一个关键缺点(目前),即复合空间/非空间索引不可用。这会减慢大量空间查询的速度。

关于mysql - SQL LINESTRING() 与多行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30733092/

38 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com