Php 向服务器添加大量记录

Php 向服务器添加大量记录,php,mysql,Php,Mysql,我们有一个电子商务系统和一个单独的库存系统。我们使用php和mysql。我们需要将库存详细信息发送到电子商务服务器。我们每1小时将大约7500条记录推送到服务器。我们在电子商务系统上创建了一个api,通过它我们可以添加库存。但由于两台服务器位于不同的位置,这需要花费大量的时间。是否有一种更快的方法可以将此资源清册推送到服务器。i、 e.将记录添加到服务器上的特定表中,并且仅添加2列 你能告诉我们瓶颈在哪里吗?您的API是否被数据库阻塞?在一次调用中,您要通过API推送多少项?您能告诉我们瓶颈在哪

我们有一个电子商务系统和一个单独的库存系统。我们使用php和mysql。我们需要将库存详细信息发送到电子商务服务器。我们每1小时将大约7500条记录推送到服务器。我们在电子商务系统上创建了一个api,通过它我们可以添加库存。但由于两台服务器位于不同的位置,这需要花费大量的时间。是否有一种更快的方法可以将此资源清册推送到服务器。i、 e.将记录添加到服务器上的特定表中,并且仅添加2列

你能告诉我们瓶颈在哪里吗?您的API是否被数据库阻塞?在一次调用中,您要通过API推送多少项?

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

表中每行执行一个API请求。这会带来大量的开销

取而代之的是,要么用7.500+行发出一个巨大的请求(不太好,但仍优于1/1),要么对
n
记录发出几个请求。根据性能定制
n

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

表中每行执行一个API请求。这会带来大量的开销

取而代之的是,要么用7.500+行发出一个巨大的请求(不太好,但仍优于1/1),要么对
n
记录发出几个请求。根据性能定制
n

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

在MySQL中,如果在一个表中添加大量数据,则可以对多个
行执行一次
插入操作。那样快多了

INSERT INTO inventory VALUES (2, 'Lamp'), (1, 'Bike'), (8, 'TV');
您可以在中找到有关
INSERT
优化的文档


文档还显示了您可能需要考虑的备选方案。MySQL中的

< P>,如果在单个表中添加了大量数据,则可以对多个<代码>行执行单个<代码>插入< /代码>。那样快多了

INSERT INTO inventory VALUES (2, 'Lamp'), (1, 'Bike'), (8, 'TV');
您可以在中找到有关
INSERT
优化的文档


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

< P>它们必须有很多选项,如MySQL侧,如RSyc,加载数据INFILE,插入多行(如托马斯所说)等。 对于PHP端,您可以使用应该更快的。这里只绑定参数并在循环中执行。而查询定义位于循环的外侧。
但MySQL解决方案在您的情况下必须更有效。

他们的MySQL端必须有很多选项,如rsync、加载数据填充、插入多行(如Thomas所说)等

对于PHP端,您可以使用应该更快的。这里只绑定参数并在循环中执行。而查询定义位于循环的外侧。
但是MySQL解决方案在您的情况下必须更有效。

平面文件可以工作吗?这个导入API到底是如何工作的?您能澄清一下吗?@thomashambach-api只是简单地插入到表中。因此,我们必须循环浏览尽可能多的记录。@Hacker不可能直接从您的数据创建和执行MySQL查询,而不是用PHP处理导入?您可能会看到
rsync
是否有帮助。平面文件可以工作吗?这个导入API到底是如何工作的?您能澄清一下吗?@thomashambach-api只是简单地插入到表中。因此,我们必须循环浏览尽可能多的记录。@Hacker不可能直接从您的数据创建和执行MySQL查询,而不是用PHP处理导入?您可能会看到
rsync
是否有帮助。在一次调用中,只推送了一条记录。在一次调用中,只推送了一条记录。@Thomas Potaire-问题是服务器在不同的位置,我们不能直接接触数据库。我明白了。。。那么您正在使用第三方解决方案将数据注入数据库?您能要求他们提供一个允许单次插入多行的API调用吗?如果您无法访问数据库,这将非常困难。@Thomas Potaire-问题是服务器位于不同的位置,我们无法直接接触数据库。我明白了。。。那么您正在使用第三方解决方案将数据注入数据库?您能要求他们提供一个允许单次插入多行的API调用吗?如果你无法访问数据库,那将非常困难。。