В моей компании мы работаем с фреймворком Symfony, но для Doctrine они говорят: «Мы не будем использовать Doctrine из-за проблем с производительностью с тоннами данных».
Они правы? Если нет, дайте мне аргументы, чтобы убедить их, что они неправы.
У ORM всегда есть накладные расходы, но преимущества могут перевесить эти затраты. Обратите внимание, что я говорю «могу», а не «делать». Как и все остальное в информатике, здесь речь идет о компромиссе. Похоже, ваша команда решила, что это плохой компромисс. Мы не знаем ваших целей по производительности, как вы используете свою базу данных, какую базу данных вы используете, сколько там данных ... как мы можем ответить на ваш вопрос? Вы должны спросить своего команда, почему они решили не использовать Doctrine, а не просить нас убедить их, что они неправы. Есть ли у них данные для резервного копирования или это неосведомленное решение?
Это действительно не подходит для stackoverflow. Загляните в раздел сообщества в документации, чтобы увидеть доску доктрины в чате. Но в основном, если ваши приложения в значительной степени являются шаблонными приложениями CRUD, тогда ORM работает хорошо. Проблема на стороне чтения. По умолчанию вы всегда получаете полные объекты, что может замедлить работу, если вам нужно всего несколько столбцов. Есть обходные пути, но в конце концов пользовательские sql-запросы (с использованием уровня Doctrine DBAL) начинают выглядеть очень привлекательно.






То же самое можно сказать и о фреймворках, Symfony больше и медленнее, чем простой скрипт php, но есть преимущества, которые компенсируют возможную потерю производительности.
А производительность ... это сложная тема, но ИМХО, все дело в разработчике, который использует фреймворк. Вот почему symfony предоставляет панель отладки - чтобы увидеть, что происходит в приложении (если вы видите слишком много запросов к базе данных или странное время отклика базы данных, вы можете определить и решить проблему - прежде чем она станет проблемой)
О Доктрине - поиск Марко Пиветты и его выступлений о Доктрине (например https://vimeo.com/134178140)
Лично я никогда не встречал ситуации, с которой Doctrine не может справиться (особенно с кешем второго уровня)
Что ты сделал для проверки? Вы делали профилирование?