doctrine-orm - 生产环境中的查询过多
问题描述
在开发环境中有 16 个数据库查询(在我的存储库中使用教义 2.6 和仅 dql 查询)。不知何故,在生产中,完全相同的页面显示了 101 个查询 - 因为查询了所有关系,甚至大部分关系都没有使用。我尝试过不同的获取模式,比如 EAGER,但它没有改变任何东西。
这是一个被查询但从未在页面上使用的示例注释:
/**
* @var Doctrine\Common\Collections\Collection
*
* @Assert\Valid(traverse=true)
* @ORM\OneToMany(targetEntity="Translation", mappedBy="origin", cascade={"persist", "remove"}, orphanRemoval=true, fetch="EAGER")
* @ORM\OrderBy({"locale"="ASC"})
*/
private $translations;
会不会是某种配置错误?
解决方案
解决了它 - 根本原因是 apcu。当我从:
doctrine:
orm:
metadata_cache_driver: apcu
query_cache_driver: apcu
result_cache_driver: apcu
至
doctrine:
orm:
metadata_cache_driver: apc
query_cache_driver: apc
result_cache_driver: apc
我收到了 9 个请求,而不是 16 个(开发)和 101 个(通过 apcu 的产品)。也许这是模块的一些服务器端问题。
推荐阅读
- android - 具有可滚动视图的 BottomSheetDialogFragment
- android - Android - 与移动应用程序的服务器通信
- javascript - 何时/如何格式化十进制数据类型 ASP.NET 返回 JSON 以供在数据表 js 中使用
- jmeter - Jmeter - Distributed test - How to distribute users to multiple slaves
- c# - how do save cookies with restclient
- mysql - 使用 Java 的 JSON MySQL 数据库
- swift - 使用 swift 和 spritekit,你如何阻止场景在变得活跃/移动到前台后取消暂停?
- ms-access - How to generate phone number extensions in MS access VBA
- airflow - Storing execution parameters in the Airflow database
- mysql - 获取Mysql中的最新信息