Здравствуйте, vsb, Вы писали:
vsb>Большинство полей из базы грузятся очень быстро и ты не заметишь разницы.
Тут мне следовало уточнить. Запрос на получение сущности из базы довольно быстрый, но данные не в нормальной форме (плюс в разных базах) и собираются не по полям, а по записям (одна запись — одно поле). С быстродействием выполнения запросов всё в порядке. Проседать по времени начинает процедура распарсивания этих данных на объекты бизнеслогики. Если мне достаточно 2-3 (а не все 200) поля для одной задачи, то чтобы выиграть во времени, можно их только и парсить. Ну допустим, что логика распарсивания только выбранных полей есть. Но как сделать так, чтобы избежать множественных обращений к БД? Вот понадобилось мне 100 записей. На данный момент я их получаю по такому сценарию:
1. Отбор Id сущностей по заданным условиям. получаем массив Id.
2. Получение непосредственно сущностей в цикле по одной со всеми полями.
Получается, что нужно изменить сценарий на такой:
1. Отбор Id сущностей по заданным условиям. получаем массив Id.
2. Составление запроса на получение всех полей всех сущностей
3. Распарсивание этого большого объёма полученных данных с учётом того, какие поля нужны.
Вроде бы звучит логично и должно выигрывать по времени. Поправтье меня пожалуйста, если я заблуждаюсь.
vsb>Реализуется это через ленивую загрузку.
спасибо за совет с тяжёлыми полями.