当下有一个需求,在用户传入一个坐标之后,后端需要给出某一距离范围内的所有店铺,并根据位置距离排序。对于此需求有两种解决方式,其一是利用MySQL的ST_GeomFromText进行地理查询;其二是将所有店铺数据读取,再利用GlobalCoordinates等三方库进行数据筛选排序。在具体实现的过程中,哪一种方式效率比较高
3条回答 默认 最新
关注 仅供参考:
一般来说,利用MySQL的ST_GeomFromText进行地理查询应该更加高效,因为这种方式可以让MySQL直接利用空间索引进行搜索,而不需要将所有店铺数据读取到内存中再进行筛选。如果您采用MySQL的ST_GeomFromText进行地理查询,建议在数据库中创建一个空间索引,以加快查询速度。通过使用空间索引,MySQL将会自动过滤掉距离范围之外的店铺,并按照距离排序。这样,查询结果集中只包含您需要的数据,可以有效减少数据传输量,提高查询效率。
相比之下,将所有店铺数据读取到内存中再进行筛选排序的方式,需要先将所有店铺数据读入内存,然后再对数据进行筛选和排序。如果数据量较大,可能会导致内存消耗过高,甚至导致系统崩溃。
综上所述,使用MySQL的ST_GeomFromText进行地理查询应该是更好的选择,可以提高查询效率,并减少内存消耗。
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 1无用
悬赏问题
- ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
- ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
- ¥15 手机接入宽带网线,如何释放宽带全部速度
- ¥30 关于#r语言#的问题:如何对R语言中mfgarch包中构建的garch-midas模型进行样本内长期波动率预测和样本外长期波动率预测
- ¥15 ETLCloud 处理json多层级问题
- ¥15 matlab中使用gurobi时报错
- ¥15 这个主板怎么能扩出一两个sata口
- ¥15 不是,这到底错哪儿了😭
- ¥15 2020长安杯与连接网探
- ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么