database - 一个双向 Doctrine2 关系的性能是否低于两个单向关系?
问题描述
与 Doctrine2 最佳实践相关:https ://www.doctrine-project.org/projects/doctrine-orm/en/2.6/reference/best-practices.html
并与该帖子相关:为什么建议避免 ORM 中的双向关系?
我需要了解两个单向关系对性能的影响是否与一个双向关系一样多,或者更少,或者更多。
由于两种类型的关系导致相同的 SQL,性能问题似乎与水合、持久性和 DQL 查询有关。
就像这里解释的:https ://ocramius.github.io/blog/doctrine-orm-optimization-hydration/
解决方案
首先,重要的是要了解性能问题发生在 PHP 端而不是 DBMS 端。
双向关系引起的性能问题主要与两点有关:
- 模型变量的水合过程
- 使用许多 JOIN 子句进行 DQL 查询
所以这个问题的答案是否定的。即使你可以通过一个双向关系实现与两个单向关系相同的事情,但由于水合过程的优化,使用一个双向关系会更高效。
推荐阅读
- c# - 为什么从 Powershell 调用时 Webservice 中有额外的参数?
- python - pycharm 和 Linux 在从不同目录导入模块时显示不同的错误
- list - Haskell 对单个列表的元素进行配对
- c# - Asp.Net Core Razor Pages:asp-route 使用同一页面上的输入值
- time - 如何测量 Julia 中每个循环步骤的执行时间?
- javascript - 阻止在 Internet Explorer 中查看网页
- python - PANDAS 根据通配符输入特定 ID
- node.js - CloudFormation 更新堆栈
- laravel - Livewire Alpinejs 跨文件发射/调度变量
- javascript - Tic Tac Toe:如何将工厂函数合并到我的代码中?