ORM
ORM позволяет работать с объектами и классами в вашем коде, в то время как система сама заботится о том, как эти объекты превращаются в строки и колонки в базе данных.
Преимущества:
- Ускорение разработки: Снижает количество кода и автоматизирует рутинные CRUD-запросы
- Абстракция от cистемs управления базами данных (СУБД): Легко сменить базу данных (PostgreSQL, MySQL), изменив только настройки
- Безопасность: Автоматическое экранирование данных защищает от SQL-инъекций
- Удобство работы: Встроенные функции для связей, транзакций, миграций и кэширования
Недостатки:
- Накладные расходы: Сложные запросы могут работать медленнее ручного SQL
- Кривая обучения: Требует времени на освоение специфики фреймворка
- «Магия» под капотом: Бывает сложно понять, какой SQL сгенерируется и как его оптимизировать
- Проблема N+1: При неверной настройке ORM может выполнить множество лишних запросов