Сконфигурируйте Spring JPA с PostgreSQL для большого количества запросов БД - PullRequest
0 голосов
/ 31 мая 2019

наше приложение построено на Spring Boot 2 (spring-data, JPA, Hibernate, Postgres, tomcat).Производительность приложения очень низкая из-за большого количества запросов во времени (например, 2000 в 1 секунду).Мы знаем, что нам нужно переписать его в будущем.Но у меня вопрос: есть ли какое-нибудь решение, которое улучшает производительность и выполняет много запросов без больших изменений в коде?Спасибо за любой совет.

Ответы [ 2 ]

1 голос
/ 31 мая 2019

если вы хотите изменить код, я бы предложил заменить спящий режим прямым SQL на что-то вроде MyBatis. Но если код не изменился, я могу только посоветовать вам сначала найти горлышко бутылки.

1 голос
/ 31 мая 2019

Это широкий вопрос, но некоторые методы, которые приходят на ум:

1) Оптимистическая блокировка. Благодаря этому вам не нужно физически блокировать таблицы / строки, поэтому ваши параллельные запросы не ставятся в очередь и не складываются. Вы все равно получите OptimisticLockExceptions и вам придется с ними справиться, но вы получите некоторые преимущества в производительности с обратной стороны.

2) Старайтесь избегать длинных методов, заключенных в транзакции, которые могут блокировать определенные данные для более чем необходимого. Возможно, вам придется подумать о настройке @Transactionl методов с помощью PROPAGATION=REQUIRES_NEW и об общем их сокращении.

3) Попробуйте проверить время ожидания ваших запросов, чтобы они не зависали слишком долго при блокировке и т. Д.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...