spring.datasource.connection-fetch=lazy
По умолчанию методы с
@Transactional получают соединение с БД сразу при открытии транзакции, даже если запрос в итоге так и не выполняется.Попадание в кэш, ранний
return, долгий вызов внешнего API перед сохранением данных — во всех этих случаях соединение просто простаивает без дела.Режим
lazy откладывает получение соединения до момента, когда действительно выполняется SQL-запрос.Dan Vega собрал демо, которое показывает это на метриках HikariCP.
Количество захватов соединений (
acquire count) падает примерно со 100 до почти 0.👉 Java Portal