Re[2]: Мини версия класса
От: corpse56  
Дата: 16.12.21 11:48
Оценка:
Здравствуйте, vsb, Вы писали:

vsb>Большинство полей из базы грузятся очень быстро и ты не заметишь разницы.


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


Получается, что нужно изменить сценарий на такой:
1. Отбор Id сущностей по заданным условиям. получаем массив Id.
2. Составление запроса на получение всех полей всех сущностей
3. Распарсивание этого большого объёма полученных данных с учётом того, какие поля нужны.

Вроде бы звучит логично и должно выигрывать по времени. Поправтье меня пожалуйста, если я заблуждаюсь.


vsb>Реализуется это через ленивую загрузку.

спасибо за совет с тяжёлыми полями.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.