我在服务器上安装了Nominatim(带有开放的街道地图)。
在另一台服务器上,我有一个包含多列3的数据库,其中3列是lat(纬度),lon(经度)和地址。 lat和lon列用坐标完成,对于第3列,我用PHP编写了一个脚本,用于查询Nominatim(在另一台服务器上)以获取坐标的地址并在运行时更新数据库。目前脚本使用cUrl(创建类似.../reverse.php?lat=XX&lon=YY
的URL),获取输出(xml)并更新数据库。
问题是1000坐标大约需要16秒。该脚本始终运行8个cUrl线程,直到完成所有提取。我发现8个线程是最好的,因为服务器有一个8核CPU。
我想知道是否有更好的解决方案来更快地获得地址。我想通过ssh运行exec,甚至将数据库导出到nominatim服务器并在那里运行exec。
在开始编写代码之前,我想得到一个意见,所以我不会写几百行代码来获得更糟糕的结果。
答案 0 :(得分:0)
我通过在Nominatim服务器上移动脚本并使用execs运行8个脚本,每个处理1/8的数据,设法将时间缩短到4秒。