我们有一个电子商务系统,我们有独立的库存系统。我们使用php和mysql。我们需要将库存详细信息提供给电子商务服务器。我们有大约7500条记录每1小时推送到服务器。我们在电子商务系统上创建了一个api,通过它我们添加了库存。但是,由于两台服务器位于不同的位置,它正在耗费时间。有没有更快的方法可以将此库存推送到服务器。即将记录添加到服务器上的特定表并且仅添加2列。向服务器添加大量记录
回答
它们必须是很多MySQL的侧像的rsync,LOAD DATA INFILE选项,插入多行(如托马斯说)等
对于PHP端你可以使用Prepared Statements这应该会更快。在这里你只绑定params并在循环中执行。尽管查询定义不在循环中。 但仍然MySQL解决方案必须在你的情况下更有效。
您正在表中的每行执行一个API请求。这引入了很多开销的。
取而代之,请使用7.500行(不好,但仍比1/1更好)的请求或n
记录的多个请求。根据表现裁缝n
。
编辑
既然你从未被命名您的电子商务解决方案,我假设它的内部,你可以使用API鼓捣。如果不是这样,请告诉我。
在MySQL中,如果您在单个表中添加大量数据,则可以为多个ROWS
执行单个INSERT
。这种方式要快得多。
INSERT INTO inventory VALUES (2, 'Lamp'), (1, 'Bike'), (8, 'TV');
您可以找到文档中MySQL documentation约INSERT
优化。
该文档还显示了您可能需要考虑的替代解决方案。
@ Thomas Potaire - 问题在于服务器位于不同位置,我们无法直接触摸数据库。 – Hacker 2013-03-14 05:01:13
我明白了......所以你正在使用第三方解决方案在数据库中注入数据?你可以让他们提供一个允许单行插入多行的API调用吗?如果你没有任何访问数据库的权限,那将非常困难.. – 2013-03-14 06:24:57
- 1. 向log4j2记录器添加文件名
- 2. 向Glassfish服务器添加过滤器
- 3. 向服务器发送大量数据
- 4. 向服务器发送大量请求
- 5. 向Jasper服务器添加Informix JDBC
- 6. SQL服务器添加向上计数
- 7. 数据表(CRUD) - 服务器端添加新记录
- 8. jqgrid服务器分页记录添加示例
- 9. 向tableview添加更多记录
- 10. 向记录添加前导零+铸造
- 11. 从休息服务发送大量记录
- 12. jPOS记录器:在包装器中添加记录器
- 13. 将服务器添加到服务
- 14. 如何向php记录集变量添加前缀
- 15. Dns记录指向服务器上的某个文件夹
- 16. Flask部署服务器重定向添加服务器名称到地址
- 17. WPF Gmap.NET添加大量标记
- 18. 如何在Hapi服务器上记录服务器负载
- 19. 记录Windows服务
- 20. 向HTML元素添加大量CSS类
- 21. 重复记录并添加变量
- 22. 将方向服务端点标记添加到点击事件侦听器
- 23. 向记录器添加多个处理程序
- 24. 性能:大量的图像与大量的目录在网络服务器
- 25. SQL服务器表中缺少记录
- 26. Oracle应用服务器日志记录
- 27. SQL服务器:盘点记录
- 28. Tomcat:No Catalina记录服务器错误
- 29. 邮件服务器的SPF记录
- 30. VBA从SQL服务器记录值
平面文件能工作吗? – Leeish 2013-03-14 04:40:19
这个导入API的工作原理是什么?你能澄清吗? – 2013-03-14 04:42:05
@Thomas Hambach - api是一个简单的插入表。所以我们必须循环访问尽可能多的记录。 – Hacker 2013-03-14 04:45:12