好的,我会尽量保持这个简短,甜蜜和重点.
我们通过将MASSIVE CSV文件上传到基于PHP的CMS,对我们的系统进行了大量的GeoIP更新.这件事通常有超过100k的IP地址信息记录.现在,简单地导入这些数据根本不是问题,但是我们必须对当前的区域IP地址映射运行检查.
这意味着我们必须验证数据,比较和拆分重叠的IP地址等.并且必须对每条记录进行这些检查.
不仅如此,我还创建了一个字段映射解决方案,允许其他供应商以不同的格式实现其GeoIP更新.这是通过将规则应用于CSV更新中的IP记录来完成的.
例如,规则可能如下所示:
如果’countryName’==’澳大利亚’然后发送到’澳大利亚IP池’
可能存在多个必须运行的规则,并且每个IP记录必须全部应用它们.例如,根据10条规则检查的100k记录将是100万次迭代;不好玩.
我们发现100条记录的2条规则最多需要10分钟来处理.我完全清楚这里的瓶颈是成功导入必须发生的剪切迭代量;只是没有充分意识到我们可能需要加快一些其他选择.
有人建议将文件拆分为服务器端的块.我不认为这是一个可行的解决方案,因为它为已经很复杂的系统增加了另一层复杂性.必须打开,解析和拆分该文件.然后脚本也必须遍历块.
所以,问题是,考虑到我刚刚写的内容,最好的方法是什么才能加快这个过程?不幸的是,升级服务器的硬件JUST对于这个工具不是一个选择,但它们是非常高端的盒子.
不像我想的那么短,但是. HALPS?