У меня есть код, в котором я получаю данные из различных источников, сортирую и упорядочиваю их для отправки пользователю.
Я беру данные, запуская запрос, содержащий несколько соединений в список.из DTO, то снова я запускаю другой запрос, который дополнительно содержит несколько объединений в один и тот же список DTO.затем я добавляю оба списка DTO, которые должны быть представлены пользователю.
Запрос 1: Выбор * из TABLE1, TABLE2 ....
Запрос 2: Выберите * из TABLE5, TABLE7 ....
dto1.addAll(dto2);
dto1.sort(Comparator....);
Я снова сортирую его программно по следующей причине:
Query 1 returned sorted data lets assume
1,2,3,4
Query 2 returned sorted data lets assume
1,2,3,4
After combining both the lists, I will get
1,2,3,4,1,2,3,4
Expected data
1,1,2,2,3,3,4,4
Мой вопрос такой,в каком случае производительность будет лучше?
- извлечь отсортированные данные из обоих запросов, добавить список, а затем отсортировать и упорядочить их.
- извлечь несортированные данные из обоих запросов, добавьте список, а затем сортируйте и упорядочивайте только один раз.
В первом случае он будет отсортирован трижды, а во втором случае он будет отсортирован и упорядочен только один раз.
Когда я проверил, поместив сотни тысяч записей в таблицу, я не обнаружил большой разницы, второй случай был немного быстрее первого.
Так, в случае эффективности и производительности,какой из них следует порекомендовать?