Весенний WebFlux. Есть два способа получения данных из базы данных (прямые и потоковые операторы)? Какая разница? - PullRequest
0 голосов
/ 12 апреля 2019

Я использую Spring Data и WebFlux. У меня есть два способа получить данные из базы данных.

Первый способ: Я могу получить данные, используя запрос как -

Flux(?) findAllByName(String name)

Второй способ: Я могу использовать операторы, так как я использую WebFlux

findAll().filter(x -> x.name.equals(name))

В чем разница?
Какой из них лучше?

1 Ответ

0 голосов
/ 09 мая 2019

Для Flux(?) findAllByName(String name) фильтрация происходит внутри базы данных, которая возвращает только записи с совпадающим именем.

Для findAll().filter(x -> x.name.equals(name)) вы получаете все записи из базы данных (таблицы, коллекции документов, ...) и фильтруете их внутри своего приложения.

Если ваша база данных хранит гигабайты данных, перемещение по всей сети не является жизнеспособной стратегией. Поэтому первый вариант предпочтителен.

...