【发布时间】:2011-10-27 13:04:51
【问题描述】:
我有 451 个城市的坐标。现在我想计算每个城市之间的距离,然后按该距离排序一些结果。现在我有两个选择:
- 我可以运行一个循环来计算每个可能的城市组合的距离并将它们存储到一个表中,这将产生大约 200k 行。
- 或者,我可以在没有预先计算的情况下离开城市,然后在显示结果时(每页大约 30 个),分别计算每个城市的距离。
我不知道哪个对性能更好,但我更愿意选择选项一,在这种情况下我还有另一个顾虑:有没有办法让我尽可能少地输出行?目前,我会将可能性计为451^2,但我认为我可以将其除以2,因为City1-City2 的距离与City2-City1 相同。
谢谢
【问题讨论】:
-
如果您想知道哪个性能更好,请尝试一下。提出示例数据和一些您可以运行的查询,并针对您的每个选项进行尝试。比猜测要好得多。
-
我不是在猜测。我只是想看看是否有任何已被证明可以更快/减少负载。
-
我明白了。尽管从您的问题的外观来看,两者都应该相当快地实施。但是,如果城市列表是静态的,@Ivan 的回答是有道理的。
标签: mysql optimization distance