spring data hibernate,crud repository postgres
Если писать в базу через repository.save()
Спринг плодит кучу ненужных запросов и запись происходит допустим 4 секунды,в диаграмме postgres видно активность в 2-3 записи в секунду.
Но если беру entyty manager и пишу через него на прямую native sql то количество записей в секунду выростает до 200-300.
Чего я не понимаю,где криво настроен spring или hibernate, возможна ли оптимизация этого ?
тебе обязательно наличие кода, работающего с hibernate как c ORM ?
Почитать можно тут https://vladmihalcea.com/
может сложные связи, + везде eager стоит
Если планируешь через save писать только новые данные, а не обновлять уже существующие записи, то можно сделать вот так: Для ентити пишешь implements Persistable Переопределяешь isNew и всегда возвращешь true Таким образом спринг не будет сначла селектить данные, а сразу писать новые. Ну и батчи добавь, примерно вот так: spring.jpa.properties.hibernate.jdbc.batch_size=50 spring.jpa.properties.hibernate.order_inserts=true spring.jpa.properties.hibernate.order_updates=true
Обсуждают сегодня