【问题标题】:How to make server real-time calculations more efficient如何让服务器实时计算更高效
【发布时间】:2009-12-29 01:54:05
【问题描述】:

我在一个站点上使用 mySQL 数据库根据邮政编码、纬度和经度计算多个点的距离。 例如。邮政编码 123456 处的点 A 的纬度为 100,经度为 200 使用静态公式,实时计算并返回 A 点与其他多个点之间的距离。参考点 A 可能会更改为具有不同纬度/经度的 B 点

问题在于服务器 CPU 已用尽,并且需要很长时间才能进行这些计算。我可以增加 CPU 功率,但想知道是否有更有效的方法。

将距离放入 DB 是不切实际的,因为这意味着 N x N 查找 (999999 x 999999) 并且会随着更多数据点的添加而呈指数增长。

【问题讨论】:

    标签: mysql real-time


    【解决方案1】:

    听起来你在做类似地理的事情,你考虑过http://postgis.refractions.net/ 吗? (如果您没有绑定到 MySQL),因为它是为计算而调整/设计的,有点像这样。

    【讨论】:

      【解决方案2】:

      数据库服务器的设计并非以快速算术为主要目标。

      确保您充分有效地利用索引。

      如果您需要实际距离,请使用fast square root 公式,否则只需比较距离的平方。

      在适当的地方使用缓存。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-09-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-04-08
        • 2020-09-17
        • 1970-01-01
        相关资源
        最近更新 更多