Какой метод сортировки эффективен среди сортировки с использованием порядка JPA или сортировки с использованием метода collection ()? - PullRequest
0 голосов
/ 24 мая 2019

У меня есть таблица с именем 'userProfileEmployment'.У него есть начальная дата col.который хранит значения в формате гггг-мм-дд.Из этого я должен получить список занятий в порядке Asc.

Теперь у меня есть два подхода к этому: 1. извлекать непосредственно отсортированные строки из БД с помощью запроса JPA.2. получить строки как они есть из БД, сохранить их в списке, а затем отсортировать их, используя метод сортировки коллекции

. Я делюсь кодом для подхода 1: - список jobsList = userProfileEmploymentRepository.findAllByProfileIdSorted (userProfileId);

Фрагмент из класса UserProfileEmploymentRepository.java:

@Query("select upe from UserProfileEmployment upe where upe.profileId = :profileId and (upe.deleted = 0 or upe.deleted is null) order by upe.startDate")
    List<UserProfileEmployment> findAllByProfileIdSorted(@Param("profileId") Long profileId);

Теперь мы получаем отсортированный вывод из обоих подходов.Так что мой вопрос в том, какой из двух лучше.Является ли сортировка с использованием предложения order by более дорогой или сортировка с использованием метода сортировки по коллекциям лучше

1 Ответ

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

В большинстве случаев сортировка в БД предпочтительнее, чем в оперативной памяти (т. Е. В коллекциях).

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

Во-вторых, если позже вы захотите начать возвращать разбитые на страницы данные (то есть срезцелых данных), то вы можете загрузить только эти фрагменты, используя Pageable из БД, и сэкономить кучу памяти.

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