我有451个座标城市。现在,我想计算每个城市之间的距离,然后按该距离排序一些结果。现在我有两个选择:
我可以运行一个循环,该循环将计算每种可能的城市组合的距离并将其存储到表中,这将导致大约20万行。
或者,我可以不进行预先计算就离开城市,然后在显示结果时(每页大约30个),分别计算每个城市的距离。
我不知道哪种方法对性能更好,但是我更愿意选择第一种方法,在这种情况下,我还要担心:是否有办法减少行数?目前,我将可能性计为451^2
,但我想可以将其除以2,因为City1-City2
情况下的距离与City2-City1
相同。
谢谢
最佳答案
如果您的城市表或多或少是静态的,则绝对应该对所有距离进行计算,并将它们存储在单独的表中。在这种情况下,您将有(451 ^ 2/2)行(只需确保City1的id始终低于City2的ID(或者反过来,并不重要))。