бест практис, фильтрация больших объемов данных как лучше ее производить сложным запросом sql в базу? Или брать данные сервером и на сервере выполнять фильтрацию, результат клиенту?
На уровне базы, конечно, причём сильно не стесняйся в сложности запросов. У нас есть в постгре функция для поиска в сотню с щемта строк, страшно конечно, но мы стараемся её не видеть.
Эту функцию писали как раз для оптимизации, ибо реализация ранее генерила с бекенда 3к запросов (какой-то ишак запросы в цикле сделал).
Тут много вопросов, стоит начать с: - понадобятся ли эти данные повторно на фронте? - это единый фильтр-запрос или их может быть несколько?
У таблицы несколько фильтров, на каждом столбце, выбираем фильтр пошёл запрос в базу, в теории можно так собрать все фильтры, но при каждом выборе новый запрос
Следующие вопрос: - какой объём не фильтрованных данных mb?
0,4mb, вес таблицы, в которой находится порядка 30к строк записей с разными данными
если там действительно большие объёмы и сложные фильтры, то можно использовать отдельный сервер структурного и полнотекстового поиска. типа эластиксёрча или сфинкса. они хорошо умеют делать фасеты, которые в сиквеле делать неудобно.
Обсуждают сегодня