PHP-处理900,000条记录数据库和邮政编码的最佳方法?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了PHP-处理900,000条记录数据库和邮政编码的最佳方法?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1557字,纯文字阅读大概需要3分钟。
内容图文
![PHP-处理900,000条记录数据库和邮政编码的最佳方法?](/upload/InfoBanner/zyjiaocheng/880/7a0c594359e84e0ca027587a2f81ccbb.jpg)
与我们有业务往来的公司希望每天提供1.2 GB的CSV文件,其中包含大约900,000个产品列表.每天只有一小部分文件更改,也许不到0.5%,这实际上只是添加或删除而不是修改产品.我们需要向合作伙伴显示产品清单.
更复杂的是,我们的合作伙伴只能在其邮政编码30-500英里半径内看到可用的产品清单.每个产品列表行都有一个字段,用于显示产品的实际半径(有些仅为30,有些为500,有些为100,以此类推.最大为500).给定邮政编码的合作伙伴可能只有20个左右的结果,这意味着将有大量未使用的数据.我们不知道所有合作伙伴的邮政编码.
我们必须考虑性能,因此我不确定实现此目标的最佳方法是什么.
我是否应该有两个数据库-一个包含邮政编码和纬度/经度,并使用Haversine公式计算距离…而另一个使用实际产品数据库…然后该怎么办?返回给定半径内的所有邮政编码,并在产品数据库中查找匹配项?对于500英里的半径,这将是大量的邮政编码.还是写一个MySQL函数?
我们可以使用Amazon SimpleDB来存储数据库…但是,邮政编码仍然存在这个问题.我可以像亚马逊所说的那样创建两个“域”,一个用于产品,一个用于邮政编码?不过,我认为您无法跨多个SimpleDB域进行查询.至少,我在他们的文档中没有看到.
我完全愿意接受其他解决方案.它不必是PHP / MySQL或SimpleDB.请记住,我们专用的服务器是2 GB的P4.我们可以升级RAM,只是我们不能为此付出很多处理能力.甚至每晚都在VPS上存储和处理数据库,如果在处理1.2 gb CSV的过程中VPS的运行速度慢得令人难以忍受,那将不是问题.我们甚至可以在台式计算机上离线处理文件,然后每天远程更新数据库…除非我仍然遇到邮政编码和产品列表需要交叉引用的问题.
解决方法:
您可能需要研究PostgreSQL和Postgis.它具有与MySQL spacial indexing类似的功能,而无需使用MyISAM(根据我的经验,与InnoDB相比,它倾向于损坏).
特别是Postgres 9.1,它允许使用GIST索引进行k-nearest neighbour search查询.
内容总结
以上是互联网集市为您收集整理的PHP-处理900,000条记录数据库和邮政编码的最佳方法?全部内容,希望文章能够帮你解决PHP-处理900,000条记录数据库和邮政编码的最佳方法?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。