首页 > 解决方案 > 原则 ORM,当每个实体具有嵌套关系时,使用持久化和刷新的批量更新问题(使用缓存的可能性)

问题描述

我正在尝试对产品数据进行 excel 导入,其中 excel 将包含数据库中已经存在的数据。因此,事实证明是根据来自 excel 的值更新现有的产品数据。每个产品数据都有标签、类别等关系。我们假设标签是唯一的主数据。所以每个产品都可以链接到标签。我使用了 Doctrine ORM 并使用了 persist 和 flush 组合。但是它需要大量的时间和内存来执行。有时,当产品实体数量较大时,它会超过内存限制。由于标签是共享的,因此在持久化期间执行了许多 SELECT 语句。我尝试在操作过程中应用 flush() 和 clear()。

有人可以对此提出一些解决方案。如果已经选择(即在实体之间共享),我们是否可以使用缓存来消除频繁的数据获取语句。

标签: cachingdoctrine-ormbulkupdate

解决方案


推荐阅读