Hikari CP глазами разработчика

Оглавление Введение: зачем нужен пул соединений? Для высоконагруженных серверных приложений взаимодействие с базой данных (БД) является одной из самых “тяжелых” операций. Установление нового подключения к БД – дорогостоящая операция: она включает сетевые взаимодействия, аутентификацию, выделение памяти и т.д. Если для каждого запроса к БД открывать новое соединение, приложение быстро столкнется с огромными накладными расходами: каждый … —Читать далее—

Loading

Что каждый разработчик должен знать об аннотации @Transactional

Оглавление Введение В современных приложениях важно обеспечивать атомарность операций с данными. Если выполнение бизнес-логики включает несколько обращений к базе данных, они должны выполняться все как единое целое или не выполняться вовсе. Например, при переводе денег со счета покупателя на счет продавца нужно либо уменьшить баланс покупателя и увеличить баланс продавца, либо не делать ничего, если … —Читать далее—

Loading

Soft Delete в Spring Boot JPA: лучшие практики и практическая реализация

Оглавление Введение Почти в каждом приложении наступает момент, когда возникает необходимость удалять данные. Однако прямое физическое удаление записей (DELETE FROM…) далеко не всегда лучший подход. Часто требуется сохранить возможность восстановления данных, проводить аудит изменений или выполнять нормативные требования законодательства, согласно которым удаление записей может быть нежелательным или вовсе запрещенным. В таких случаях на помощь приходит … —Читать далее—

Loading

Что такое N+1 SELECT проблема и как с ней бороться?

Оглавление Введение Работа с данными в Java-приложениях на основе Spring Data JPA и Hibernate является чрезвычайно удобной благодаря автоматической генерации SQL-запросов и простоте работы с объектами. Однако, вместе с удобством часто приходят и проблемы производительности, самой известной из которых является проблема N+1 SELECT. Проблема N+1 SELECT возникает незаметно для разработчика и способна существенно снизить производительность … —Читать далее—

Loading

Основы кэширования в Hibernate

Hibernate — одна из самых популярных Java-библиотек для работы с реляционными базами данных. Hibernate предоставляет прозрачное и эффективное управление данными, упрощая процесс разработки приложений. Одним из ключевых аспектов производительности Hibernate является кэширование. В этой статье мы рассмотрим уровни кэширования в Hibernate, принципы их работы и предоставим рекомендации по использованию. В частности, мы рассмотрим: Первого уровня … —Читать далее—

Loading