0

我在使用 magento“catalog_product_entity_decimal”表进行更新查询时遇到问题。我需要每隔一小时动态更新产品价格,商店现在有大约 50k 产品。所以我没有遵循magento产品价格保存到批量更新的方式,而是在给出结果的“catalog_product_entity_decimal”表中遵循直接产品价格更新。

我的查询是这样的$query = "UPDATE catalog_product_entity_decimal val SET val.value = '$final_rounded_price' WHERE val.attribute_id = 75 AND val.entity_id = $product_id";

更新到 47701 个产品花了 1307.1874998760223 秒。这将近 20 分钟 - 当我们在实时站点更新中这样做时,这太慢了。

它确实在商店中正确反映,但更新时间太长,这是个大问题。同样,如果没有此查询更新,此过程所需的时间仅为毫秒。所以这个表是花时间的问题,然后我尝试更新一些虚拟表更新,这些更新具有几乎相同的记录,用于我自己的目的,需要 8.5674998760223 秒才能更新到 47701 个产品。

该查询是这样的

$query = "UPDATE product_attributes val SET val.price = '$final_rounded_price' WHERE val.attr_id = $attr_id AND val.product_id = $product_id";

我尝试使用不同的服务器,结果或多或少相同。所以我看到“catalog_product_entity_decimal”这个表有很多引用,这一定是需要很长时间的原因。

我不是 mysql 方面的专家,我无法使用此表减少 mysql 更新时间。请建议我如何更快地对表“catalog_product_entity_decimal”运行更新查询以批量更新价格。

附上表格“catalog_product_entity_decimal”的截图供参考。

在此处输入图像描述

开发服务器配置:Cent os 6,带有 php 5.3、8 GB RAM、Magento 环境 - 1.7.02 - 运行默认存储,代码/db 没有任何更改。

4

0 回答 0