在大表中查找半径MySQL(纬度经度)内的点的最快方法是什么

2023-12-22

目前我有几个包含 100k+ 行的表。我正在尝试查找如下数据。

SELECT
*, SQRT(POW(69.1 * (latitude - '49.1044302'), 2) + POW(69.1 * ('-122.801094' - longitude) * COS(latitude / 57.3), 2)) AS distance
FROM stops
HAVING distance < 5
ORDER BY distance limit 100

但目前这种方法在高负载下会变慢。有些查询需要 20 秒以上才能完成。

如果有人知道更好的优化方法,那就太好了。


首先,如果你有大量地理空间数据,你应该使用 mysql 的地理空间扩展,而不是像这样的计算。那么你可以创建空间索引 https://dev.mysql.com/doc/refman/5.7/en/creating-spatial-indexes.html这将加快许多查询的速度,并且您不必像上面那样编写冗长的查询。

使用与ST_距离 http://dev.mysql.com/doc/refman/5.7/en/spatial-relation-functions-object-shapes.html#function_st-distance或者使用 ST_within 创建具有感兴趣半径的几何图形可能会给您带来良好的结果,并且可能比当前快得多。然而实现这一目标的最佳和最快的方法是ST_D内 http://postgis.net/docs/ST_DWithin.htmlmysql 中尚未实现。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在大表中查找半径MySQL(纬度经度)内的点的最快方法是什么 的相关文章

随机推荐

  • 高分辨率下 Swing UI 缩放不良(MS Surface)

    我目前正在开发一个涉及 Swing GUI 的小型 Java 应用程序 在我的开发 PC 上 一切看起来都很好 但当我在 MS Surface 上运行它时 某些图标对于组件来说似乎太大 或者组件对于图标来说太小 这就是我的意思 Google
  • Django 全文搜索按相关性顺序

    我正在使用 Django 查询过滤器 search 来执行全文搜索 例如 MyModel objects filter title search some title 我如何让它按相关性排序 因为目前它似乎是按字母顺序排序的 具体来说 我想
  • Java Posix IPC 有API吗? [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我想知道是否可以访问 Java 中的 Posix 消息队列 因为我有一个无法修改并使用消息队列与其他进程
  • 在 Typescript 中使用“--strictFunctionTypes”有什么好处?

    据我了解 strictFunctionTypesTypescript 中的编译器选项阻止了一个非常常见的多态性用例的工作 type Handler request Request gt Response const myHandler Ha
  • 如何使用Xamarin Android APK的.Net Reactor混淆dll

    我是 Xamarin Android 新手 我使用 Visual Studio 2015 社区版创建了一个应用程序 我已将解决方案配置设置为发布 为了进行混淆 我使用了 Net Reactor 这就是我试图混淆的方式 1 构建应用程序后 我
  • Common-Lisp 以函数格式打印制表符

    我希望打印制表符format功能 我可以通过以下方式实现这一点 C然后放置 tab作为格式的参数 但这似乎有点冗长 因为对于换行符 可以简单地放置一个 在字符串中 使用打印标签最常用的做法是什么format功能 感谢您的帮助 中没有制表符的
  • 在 CrossWalk 中迁移 Cordova 应用程序时出错

    我在尝试着迁移科尔多瓦应用程序 in 人行横道 using 命令行工具如中给出的this https crosswalk project org documentation cordova migrate an application ht
  • 在编译时计算一组常量表达式的最大值

    我试图在 Rust 过程宏 派生宏 内的编译时计算一组常量的最大值 该宏看起来像 fn get max len gt TokenStream Each TokenStream represents a constant expression
  • 有关 mod_rewrite 和 mod_redirect 的帮助

    我的 htaccess 文件是 Redirect 301 http domain com news articles dtMain start 150 http domain com news articles Redirect 301 h
  • 如何使用 pandas read_xml API 读取大型 xml 文件?

    我正在尝试读取一个大的 XML 文件 文件大小约为 84 GB 来自 Post xml 的堆栈溢出数据转储 我注意到有 Pandas API pandas read xml link https pandas pydata org pand
  • 为什么内存块没有被垃圾收集器清理?

    package main import fmt net http runtime func handler w http ResponseWriter r http Request largeMemAlloc make int 100000
  • 创建具有像单例模式一样的可重用性的 CSOM ClientContext

    我在不同的用户操作上调用了多种方法客户端上下文 在每个方法执行上创建它都会导致性能问题 所以我将其添加为静态变量以实现可重用性 性能平均提高了 5 秒 但随后在某些方法中它开始给出随机问题 版本冲突 on 执行查询 但如果我删除静态和空检查
  • 将 GoDaddy 裸域添加到 Heroku 应用程序

    Heroku 自定义域 https devcenter heroku com articles custom domains 我已经设置了two我的 Heroku 应用程序的自定义域 example com example com hero
  • 在 PyTorch 中实现“无限循环”数据集和数据加载器

    我想实现一个无限循环数据集和数据加载器 这是我尝试过的 class Infinite Dataset def len self return HPARAMS batch size return 1 lt lt 30 This causes
  • sprintf 代表什么?

    我尝试在谷歌和维基百科上查找 但找不到答案 有谁知道 sprintf 或 printf 代表什么 是某个东西的缩写吗 Thanks 字符串打印格式 ed IE 使用给定格式打印到字符串
  • 使用匿名类型集合填充 WPF 中的 DataGrid

    我正在使用匿名类型的集合填充数据网格 我正在设置DataGrid s DataContext财产 并且没有错误 数据网格中没有显示任何内容 我尝试对定义的对象集合进行相同的操作 但再次没有显示任何内容 请您指导我该怎么做 Thanks ED
  • 奇怪的“字符串索引超出范围:0”错误

    我有一个巨大的应用程序 在某些时候 当涉及重定向时 我收到了这个奇怪的错误 Caused by java lang StringIndexOutOfBoundsException with message String index out
  • 编写电子邮件嗅探器

    我有兴趣编写一个电子邮件嗅探器 将通过基于网络的客户端发送的所有电子邮件保存到高清 但我不知道如何做到这一点 如何在加密之前捕获 HTTPS 邮件 我真的很感激一些有用的信息 我在网上找不到任何信息 有一个名为 HTTP Analyzer
  • 是否有 shim 或 polyfill 可以解决 Chrome 对数据列表的 512 限制?

    使用绑定到数据列表的输入标签实现了预输入 当用户滚动浏览条目时 Chrome 不会显示第 512 个匹配项之外的任何条目 整个数据列表仅包含大约 950 个条目 使用适用于 Windows 的 Chrome 版本 76 0 3809 100
  • 在大表中查找半径MySQL(纬度经度)内的点的最快方法是什么

    目前我有几个包含 100k 行的表 我正在尝试查找如下数据 SELECT SQRT POW 69 1 latitude 49 1044302 2 POW 69 1 122 801094 longitude COS latitude 57 3