Java_CV猿 2023-02-16 10:51 采纳率: 66.7%
浏览 11
已结题

MySQL的地理查询与Java调用三方库地理查询选择哪种方式比较好?

当下有一个需求,在用户传入一个坐标之后,后端需要给出某一距离范围内的所有店铺,并根据位置距离排序。对于此需求有两种解决方式,其一是利用MySQL的ST_GeomFromText进行地理查询;其二是将所有店铺数据读取,再利用GlobalCoordinates等三方库进行数据筛选排序。在具体实现的过程中,哪一种方式效率比较高

  • 写回答

3条回答 默认 最新

  • 程序yang 全栈领域优质创作者 2023-02-16 10:55
    关注

    仅供参考:
    一般来说,利用MySQL的ST_GeomFromText进行地理查询应该更加高效,因为这种方式可以让MySQL直接利用空间索引进行搜索,而不需要将所有店铺数据读取到内存中再进行筛选。

    如果您采用MySQL的ST_GeomFromText进行地理查询,建议在数据库中创建一个空间索引,以加快查询速度。通过使用空间索引,MySQL将会自动过滤掉距离范围之外的店铺,并按照距离排序。这样,查询结果集中只包含您需要的数据,可以有效减少数据传输量,提高查询效率。

    相比之下,将所有店铺数据读取到内存中再进行筛选排序的方式,需要先将所有店铺数据读入内存,然后再对数据进行筛选和排序。如果数据量较大,可能会导致内存消耗过高,甚至导致系统崩溃。

    综上所述,使用MySQL的ST_GeomFromText进行地理查询应该是更好的选择,可以提高查询效率,并减少内存消耗。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 2月24日
  • 已采纳回答 2月16日
  • 修改了问题 2月16日
  • 创建了问题 2月16日

悬赏问题

  • ¥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的速度时间图像)我想问线路信息是什么