我们有一个电子商务系统,我们有一个单独的库存系统。我们使用 php 和 mysql。我们需要向电子商务服务器提供库存详细信息。我们每 1 小时有大约 7500 条记录要推送到服务器。我们在电子商务系统上创建了一个 api,通过它我们可以添加库存。但由于两台服务器位于不同的位置,因此需要大量时间。有没有更快的方法可以将这个库存推送到服务器。即向服务器上的特定表添加记录,并且只有 2 列。
问问题
62 次
4 回答
1
你能告诉我们瓶颈在哪里吗?您的 API 是否被数据库占用?您在一次调用中通过 API 推送了多少项?
于 2013-03-14T04:42:06.600 回答
1
您正在表中的每一行执行一个 API 请求。这引入了很多开销。
相反,使用 7.500+ 行(不好但仍优于 1/1)或多个n
记录请求发出巨大请求。n
根据性能量身定制。
编辑
由于您从未命名您的电子商务解决方案,我假设它是内部的,您可以修改 API。如果这不是真的,请告诉我。
于 2013-03-14T04:47:00.683 回答
1
在 MySQL 中,如果您在单个表中添加大量数据,您可以INSERT
为多个ROWS
. 这种方式要快得多。
INSERT INTO inventory VALUES (2, 'Lamp'), (1, 'Bike'), (8, 'TV');
您可以在MySQL 文档中找到有关INSERT
优化的文档。
该文档还显示了您可能要考虑的替代解决方案。
于 2013-03-14T04:48:12.667 回答
1
它们必须有很多 MySQL 方面的选项,例如 rsync、LOAD DATA INFILE、INSERT MULTIPLE ROWS(如 Thomas 所说)等。
对于 PHP 端,您可以使用准备好的语句,它应该会更快。在这里,您只绑定参数并循环执行。虽然查询定义在循环之外。但是仍然 MySQL 解决方案在您的情况下必须更有效。
于 2013-03-14T05:10:45.850 回答