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 对于这个问题的解释说明
  • ¥200 询问:python实现大地主题正反算的程序设计,有偿
  • ¥15 smptlib使用465端口发送邮件失败
  • ¥200 总是报错,能帮助用python实现程序实现高斯正反算吗?有偿
  • ¥15 对于squad数据集的基于bert模型的微调
  • ¥15 为什么我运行这个网络会出现以下报错?CRNN神经网络
  • ¥20 steam下载游戏占用内存
  • ¥15 CST保存项目时失败
  • ¥15 树莓派5怎么用camera module 3啊
  • ¥20 java在应用程序里获取不到扬声器设备