получить 200 тыс. записей в одном запросе jpa select в течение 5 секунд - PullRequest
0 голосов
/ 29 июня 2018

Я хочу получить 200 тыс. Записей в одном запросе выбора jpa в течение 5 секунд. Я выбираю один столбец, который уже проиндексирован. В настоящее время это занимает более 5 минут. Можно ли выбрать более 100 тысяч записей за 5 секунд?

Ответы [ 2 ]

0 голосов
/ 11 июля 2018

Используйте это свойство для получения большого количества записей.

query.setHint(org.hibernate.fetchSize, 5000);
0 голосов
/ 29 июня 2018

Это невозможно при использовании спящего или обычного нативного запроса, поскольку он должен создавать сотни тысяч объектов на стороне Java, а результаты должны отправляться по сети (сериализация и десериализация). Вы можете сделать следующие шаги для тонкой настройки,

  1. На стороне БД вы можете изменить метод индекса, по умолчанию используется дерево Binery, вместо этого установите его как метод "HASH".
  2. Использование параллельных потоков для получения результатов в режиме разбивки на страницы (Использовать собственный SQL).

Надеюсь, он даст некоторые входные данные для дальнейшей подстройки.

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