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