#spring #hibernate #spring-boot #highcharts
#spring #переход в спящий режим #spring-загрузка #высокие диаграммы
Вопрос:
У меня есть таблица с 5 миллионами записей, и мне нужно выполнить запрос, который вернет минимум 1 миллион записей.
Я попытался реализовать часть запроса, чтобы возвращать 1 миллион записей только с использованием Spring Boot Hibernate. Требуется 5 минут для запроса 60 ТЫСЯЧ записей для hibernate для запроса и отображения объекта. Но у разработчика SQL это занимает всего 0,03 секунды. при запросе 1 миллиона записей выдается ошибка тайм-аута.
У меня не может быть разбивки на страницы, так как я собираюсь отобразить результат в виде диаграммы (HighCharts). Мне нужны все данные для источника данных диаграммы.
Пожалуйста, предложите, как обрабатывать запросы к таким большим данным и отображать график
Комментарии:
1. Вы можете попробовать использовать query.setReadOnly(true).list(); Hibernate не помещает объект в контекст и будет работать быстрее. Но вы потеряете постоянство с этим объектом.
2. Конечно, вы можете задать setFetchSize(60000) — запрос. setFetchSize(60000).list()
3. Привет @Karthikeyan, Вам не обязательно загружать все данные сразу. Пожалуйста, ознакомьтесь с примером концепции отложенной загрузки: highcharts.com/stock/demo/lazy-loading