向服务器添加大量记录

时间:2013-03-14 04:37:31

标签: php mysql

我们有一个电子商务系统,我们有一个独立的库存系统。我们使用php和mysql。我们需要向电子商务服务器提供库存详情。我们有大约7500条记录每1小时推送到服务器。我们在电子商务系统上创建了一个API,通过它我们添加了库存。但由于两台服务器位于不同的位置,因此需要花费很多时间。是否有更快的方法可以将此库存推送到服务器。即将记录添加到服务器上的特定表,只有2列。

4 个答案:

答案 0 :(得分:1)

您能告诉我们瓶颈在哪里吗?您的API是否被数据库阻止?您在一次通话中推送了多少项?

答案 1 :(得分:1)

您正在表中的每行执行一个API请求。这会引入很多的开销。

相反,使用7.500+行(不好但仍然优于1/1)或者n个记录的多个请求发出一个巨大的请求。根据表现裁缝n

修改

由于您从未命名过您的电子商务解决方案,我假设它是内部的,您可以修改API。如果不是这样,请告诉我。

答案 2 :(得分:1)

在MySQL中,如果您在一个表格中添加大量数据,则可以为多个INSERT执行一次ROWS。它的速度要快得多。

INSERT INTO inventory VALUES (2, 'Lamp'), (1, 'Bike'), (8, 'TV');

您可以在MySQL documentation中找到有关INSERT优化的文档。

该文档还显示了您可能需要考虑的替代解决方案。

答案 3 :(得分:1)

它们必须是MySQL方面的很多选项,如rsync,LOAD DATA INFILE,INSERT MULTIPLE ROWS(如托马斯所说)等。

对于PHP Side,您可以使用速度更快的Prepared Statements。在这里你只绑定params并在循环中执行。虽然查询定义不在循环中。 但在你的情况下,MySQL解决方案必须更有效。