我们有一个电子商务系统,我们有独立的库存系统。我们使用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. can.js如何向Rails服务器添加记录?
- 2. 向log4j2记录器添加文件名
- 3. 向Glassfish服务器添加过滤器
- 4. 向服务器发送大量数据
- 5. 向服务器发送大量请求
- 6. 向SVN服务器添加webhook功能
- 7. 向Jasper服务器添加Informix JDBC
- 8. SQL服务器添加向上计数
- 9. 数据表(CRUD) - 服务器端添加新记录
- 10. jqgrid服务器分页记录添加示例
- 11. 的FileMaker服务器新添加的记录触发PHP脚本
- 12. 向389目录服务器添加自定义架构
- 13. 将目录添加到Apache服务器
- 14. 记录多个服务器
- 15. WCF服务记录器
- 16. 当我向JavaDB添加大量记录时,它变得非常缓慢
- 17. 一次为大量记录创建工作流服务实例
- 18. 从休息服务发送大量记录
- 19. 向C#.net中的Access添加记录
- 20. 向System.Data.SQLite添加详细日志记录
- 21. 向记录添加前导零+铸造
- 22. 向tableview添加更多记录
- 23. 将服务器添加到服务
- 24. jPOS记录器:在包装器中添加记录器
- 25. 的大量记录
- 26. 如何向php记录集变量添加前缀
- 27. 如何将大量的记录添加到数据库中android
- 28. 大量查询重复记录添加的阵列的外部
- 29. 我想向服务器发送多个sqlite记录
- 30. 使用extjs5的Ext.data.store向服务器发送所有记录
平面文件能工作吗? – Leeish 2013-03-14 04:40:19
这个导入API的工作原理是什么?你能澄清吗? – 2013-03-14 04:42:05
@Thomas Hambach - api是一个简单的插入表。所以我们必须循环访问尽可能多的记录。 – Hacker 2013-03-14 04:45:12