春季WebFlux。有两种从数据库中获取数据的方法(直接和通量运算符)?有什么区别?

时间:2019-04-12 09:21:13

标签: spring-data reactive-programming

我使用Spring Data和WebFlux。 我有两种从数据库中获取数据的方法。

第一种方式: 我可以使用-

之类的请求获取数据
Flux(?) findAllByName(String name)

第二种方式: 我可以使用运算符,因为我使用的是WebFlux

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

有什么区别?
哪个更好?

1 个答案:

答案 0 :(得分:0)

对于Flux(?) findAllByName(String name),过滤发生在数据库内部,该数据库仅返回名称匹配的记录。

对于findAll().filter(x -> x.name.equals(name)),您将从数据库中获取所有记录(表,文档集合等),并在应用程序中对其进行过滤。

如果您的数据库存储了千兆字节的数据,则在整个网络上移动它不是可行的策略。因此,首选第一个变体。