我有451个坐标城市。现在我想计算每个城市之间的距离,然后按该距离订购一些结果。现在我有两个选择:
我不知道哪个会对性能有什么好处,但我更愿意选择第一个选项,在这种情况下我还有另外一个问题:有没有办法让我尽可能少的行?目前,我将可能性计为451^2
,但我认为我可以将其除以2,因为City1-City2
的距离与City2-City1
相同。
由于
答案 0 :(得分:0)
如果您的城市表格或多或少是静态的,那么您绝对应该计算所有距离并将它们存储在单独的表格中。在这种情况下,您将拥有(451 ^ 2/2)行(只需确保City1的ID始终低于City2的ID(或另一种方式,并不重要))。
答案 1 :(得分:-1)
通常,单个MySQL查询的成本非常高,数学运算的成本非常低。特别是如果地图的比例很小并且所需的精度很低,那么你可以用度数之间的固定距离来计算,你计算的速度会更快。
此外,如果由于项目更改导致城市数量增加,您将遇到问题,因此您必须在数据库中存储的组合数量超出限制。
所以如果没有预先计算,你可能会更好。