Является ли одно двунаправленное отношение Doctrine2 менее производительным, чем два однонаправленных отношения? - PullRequest
0 голосов
/ 08 мая 2018

Относится к лучшим практикам Doctrine2: https://www.doctrine -project.org / projects / doctrine-orm / en / 2.6 / reference / best-practice.html

и связанные с этим постом: Почему рекомендуется избегать двунаправленных отношений в ORM?

Мне нужно понять, влияют ли два однонаправленных отношения на производительность столько же, сколько одно двунаправленное отношение, или меньше, или больше.

Поскольку оба типа отношений приводят к одному и тому же SQL, проблемы с производительностью, по-видимому, связаны с гидратацией, устойчивостью и запросами DQL.

Как объяснено здесь: https://ocramius.github.io/blog/doctrine-orm-optimization-hydration/

1 Ответ

0 голосов
/ 23 мая 2018

Во-первых, важно понимать, что проблема производительности возникает на стороне PHP, а не на стороне СУБД.

Проблемы производительности, вызванные двусторонними отношениями, в основном связаны с двумя моментами:

  • процесс гидратации переменных модели
  • DQL-запросы со многими предложениями JOIN

Так что ответ на вопрос - нет. Даже если вы можете достичь того же с одним двунаправленным отношением, чем с двумя однонаправленными отношениями, более эффективно использовать одно двунаправленное отношение из-за оптимизации процесса гидратации.

...