在MySQL中管理经度和纬度数据库的最佳方法是什么?我有非常大的数据库包含餐厅的许多位置,我需要找到多边形内的餐厅(多边形特别是矩形)?Mysql - 管理和查找经纬度内多边形内点的最佳方法
例如,我有数据库:
行1: 纬度(-6.8374651) 经度(107.56283)
第2列: 纬度(-6.947151) 经度(108.261528)
第3行: 纬度(-9.125182) 经度(115.121831)
等
我有北西点的矩形:(-6.4516,107.19281)和东南亚点:(-6.81726,106.19271)
我的问题是如何找到这个矩形在最里面的餐馆列表高效的方式?我有五千万行的数据,并且每天都会增加。
PS。我已经创建了经度和纬度的指标,并尝试查询它是这样的:
SELECT * FROM location WHERE latitude<=-6.4516 AND latitude>=-6.81726 AND longitude<=107.19281 AND longitude>=106.19271
但MySQL的保持它搜索到整个表,使查询变得如此缓慢
感谢
如果矩形是固定的,只将坐标存储在其中。如果不是,请给出更多细节的要求。 –
没有坐标是动态的,用户可以灵活地定义它在矩形和它有多大 –