
«Яндекс» в сотрудничестве с изданием N+1 запустили онлайн-журнал «Техно». Каждый выпуск журнала будет посвящен одной из технологий «Яндекса». Первый номер о языковых моделях с интерактивными дополнениями и тестами уже доступен всем желающим.
«Яндекс» в сотрудничестве с изданием N+1 запустили онлайн-журнал «Техно». Каждый выпуск журнала будет посвящен одной из технологий «Яндекса». Первый номер о языковых моделях с интерактивными дополнениями и тестами уже доступен всем желающим.
Одна из основных проблем разработчиков, когда они создают приложение с ORM — это N+1 запрос в их приложениях. Проблема N+1 запроса — это не эффективный способ обращения к базе данных, когда приложение генерирует запрос на каждый вызов объекта. Эта проблема обычно возникает, когда мы получаем список данных из базы данных без использования ленивой или жадной загрузки (lazy load, eager load). К счастью, Laravel с его ORM Eloquent предоставляет инструменты, для удобной работы, но они имеют некоторые недостатки.
В этой статье рассмотрим проблему N+1, способы ее решения и оптимизации потребления памяти.
В данной статье я покажу как N1Loader сделает вашу жизнь легче!
Каждый разработчик рано или поздно сталкивается с проблемой N+1. ActiveRecord (Rails default ORM) поддерживает подгрузку ассоциаций с помощью includes для обхода N+1.
К сожалению, зачастую, не все данные, что нам нужны можно задекларировать в виде стандартных ассоциаций. Рассмотрим несколько примеров.
N1Loader is designed to provide a simple way for avoiding N+1 issues
of any kind. Gladly, it's super easy to integrate with your GraphQL
API. Without further delay, let's look at a simple but yet detailed
example.
N1Loader разработан для легкого избежания N+1 проблемы
любого типа. К счатью, гем очень легко интегрировать в GraphQL
API. Без дальнейших отлагательств, давайте рассмотрим простой, но самодостаточный пример.
Началось все с желания посчитать, сколько запросов в БД улетает на каждый rest запрос при использовании spring data jpa + hibernate.
Гугл выдал интересное видео про xrebel, но так же сообщил, что xrebel платный.
Дальнейший поиск привел к статье Counting Queries per Request with Hibernate and Spring.
Её и взял за основу для своего счетчика. Какого-то ещё примера не нашел, поэтому решил оставить эту заметку
In this guide, I'd like to share with you tips and tricks about ActiveRecord preloading and how you can enhance it to the next level.