Оптимизация запросов в Spring Data JDBC
Я думаю многие согласятся, что Spring Data JDBC — это ORM, который занимает конкретную нишу: он предоставляет более легковесный репозиторный слой доступа к данным поверх реляционной БД без persistence context, без lazy loading, без dirty checking и т.д. Иными словами, Spring Data JDBC р...
Я думаю многие согласятся, что Spring Data JDBC — это ORM, который занимает конкретную нишу: он предоставляет более легковесный репозиторный слой доступа к данным поверх реляционной БД без persistence context, без lazy loading, без dirty checking и т.д. Иными словами, Spring Data JDBC реализует принцип "what you see is what you get" — каждое обращение к репозиторию означает конкретный SQL-запрос в БД, который просто достаёт дерево Aggregate. Это и преимущество, и, тем не менее, иногда это источник потенциальных проблем с производительностью.В этой статье я разберу ключевые подходы к оптимизации запросов в Spring Data JDBC: от дизайна агрегатов и Single Query Loading, до Stream в качестве возвращаемого значения и @Modifying запросов. Разберём всё с кодом и на примерах. Только один момент - в этой статье я не затрагиваю Spring Data открытые/закрытые Projection-ы и т.п, так как я предполагаю, что пользователи Spring Data знают, что это и в каких ситуациях их стоит использовать. Эти вещи не специфичны для Spring Data JDBC, я же буду говорить про вещи более специфичные для Spring Data JDBC.
Связанные теги
Компании и люди
Линия сюжета
Продолжить следить за темой
Переходите к связанным материалам, страницам сущностей и активным линиям сюжета.
Антиспам на нейронках: Gemini Flash в 1000 раз дешевле чем GigaChat
Сравниваю бесплатные лимиты GigaChat, YandexGPT и Gemini Flash для реальной задачи: антиспам-бот в Telegram, 5000 сообщений в сутки. Считаю токены, потоки и рублики. Разница в л...
Конец удобства? Почему MTProxy начал ломаться
1 апреля начали массово наблюдаться проблемы с MTProto-прокси - как публичными, так и приватными. Причём вне зависимости от конфигурации, хостинга или используемого решения (вкл...
Authorization без middleware: как я завернул Casbin в декораторы для FastAPI
Когда в FastAPI-проекте появляется нормальная авторизация, код быстро начинает расползаться в стороны.Сначала все выглядит терпимо: один Depends(get_current_user), один Depends(...
[Перевод] Ослабевает ли тёмная энергия? Новые данные подтверждают эту гипотезу
Прошлой весной группа из почти 1000 космологов объявила, что тёмная энергия — загадочный фактор, заставляющий Вселенную расширяться с постоянно растущей скоростью — возможно, ос...
Список литературы тоже умеет галлюцинировать: как я делаю систему проверки научных источников
Список литературы долго казался мне самой скучной частью научной работы. Пока не выяснилось, что именно там может прятаться очень неприятная штука: ссылка, которая выглядит убед...
Десктопный агент «Союз»: безопасный и бесплатный, теперь Open Source
Когда смотришь на рынок AI-агентов, создаётся впечатление, что все соревнуются в одном и том же: кто даст модели больше инструментов, больше доступа и больше свободы. Мы попробо...
Рекламный слот
Встроенный блок в статье
Зарезервированный партнерский слот для релевантных инструментов, сервисов и аккуратных редакционных интеграций.
Похожие статьи
Еще материалы, которые пересекаются по тегам, источнику или категории.
Антиспам на нейронках: Gemini Flash в 1000 раз дешевле чем GigaChat
Сравниваю бесплатные лимиты GigaChat, YandexGPT и Gemini Flash для реальной задачи: антиспам-бот в Telegram, 5000 сообщений в сутки. Считаю токены, потоки и рублики. Разница в л...
Конец удобства? Почему MTProxy начал ломаться
1 апреля начали массово наблюдаться проблемы с MTProto-прокси - как публичными, так и приватными. Причём вне зависимости от конфигурации, хостинга или используемого решения (вкл...
Authorization без middleware: как я завернул Casbin в декораторы для FastAPI
Когда в FastAPI-проекте появляется нормальная авторизация, код быстро начинает расползаться в стороны.Сначала все выглядит терпимо: один Depends(get_current_user), один Depends(...
[Перевод] Ослабевает ли тёмная энергия? Новые данные подтверждают эту гипотезу
Прошлой весной группа из почти 1000 космологов объявила, что тёмная энергия — загадочный фактор, заставляющий Вселенную расширяться с постоянно растущей скоростью — возможно, ос...
Еще материалы от Habr
Свежие публикации и продолжение темы от той же редакции.
Антиспам на нейронках: Gemini Flash в 1000 раз дешевле чем GigaChat
Сравниваю бесплатные лимиты GigaChat, YandexGPT и Gemini Flash для реальной задачи: антиспам-бот в Telegram, 5000 сообщений в сутки. Считаю токены, потоки и рублики. Разница в л...
Конец удобства? Почему MTProxy начал ломаться
1 апреля начали массово наблюдаться проблемы с MTProto-прокси - как публичными, так и приватными. Причём вне зависимости от конфигурации, хостинга или используемого решения (вкл...
Authorization без middleware: как я завернул Casbin в декораторы для FastAPI
Когда в FastAPI-проекте появляется нормальная авторизация, код быстро начинает расползаться в стороны.Сначала все выглядит терпимо: один Depends(get_current_user), один Depends(...
[Перевод] Ослабевает ли тёмная энергия? Новые данные подтверждают эту гипотезу
Прошлой весной группа из почти 1000 космологов объявила, что тёмная энергия — загадочный фактор, заставляющий Вселенную расширяться с постоянно растущей скоростью — возможно, ос...