spring-data - 弹簧 WebFlux。有两种方法可以从数据库中获取数据(直接操作符和通量操作符)?有什么区别?
问题描述
我使用 Spring Data 和 WebFlux。我有两种方法可以从数据库中获取数据。
第一种方式:我可以使用以下请求获取数据 -
Flux(?) findAllByName(String name)
第二种方式:我可以使用运算符,因为我使用了 WebFlux
findAll().filter(x -> x.name.equals(name))
有什么区别?
哪一个更好?
解决方案
过滤发生在Flux(?) findAllByName(String name)
仅返回具有匹配名称的记录的数据库内。
因为findAll().filter(x -> x.name.equals(name))
您从数据库中获取所有记录(表、文档集合......)并在您的应用程序中过滤它们。
如果您的数据库存储了千兆字节的数据,那么在整个网络中移动它并不是一个可行的策略。因此第一个变体是优选的。
推荐阅读
- elixir - 如何使用 Elixir/Nerves 获取当前设备 IP
- python - 将日期时间转换为序数
- javascript - hls.js hls.subtitleTracks 返回空数组
- image - 未能呈现 B64 编码的 Thymeleaf
- regex - 正则表达式 - 在字符的出现数 N 后开始匹配
- flutter - Flutter/Dart 使用 ListView.builder 为每个 x 项目构建一个不同的小部件
- sql - 根据前一行和相同的计算列计算列值
- java - 使用日期错误打印月份中的日期?
- c++ - 如何创建派生对象的向量?
- azure - Ansible 查找特定键