例如 `
where like '%str%' vs stream().filter(i -> i.contains(str))
group by column a vs stream().groupingby(column_a)
group by column_a, column_b vs stream().groupingby(column_a, groupingby(column_b))
count vs stream().count
sum vs stream().sum
order by vs stream().sort
... `
我想知道在相同规范的服务器或不同规范的服务器中执行时哪个更快,性能更好。
最佳答案
这些是不同的用例。数据库被设计为处理持久数据,流遍历给定的数据结构。因此,要使用流,您需要首先以某种方式读取数据,这就是您使用带有索引的数据库的地方,这对%like%
尤其有帮助。
所以问题应该是在数据库中作为查询的一部分进行求和、分组、计数、排序是否更快,或者从数据库中获取数据并使用 java 执行这些操作是否更快,那么你几乎找不到这样的情况你最好通过流来完成它。
数据库被设计得非常快,流被设计得易于使用。 您可以找到与流性能相关的问题( here 、 here ,以及其他问题),这些问题表明流确实很慢。流可以并行工作以变得更快,但数据库也可以这样做。
关于java - SQL(例如 mysql、postgresql)与 java8 流性能相比,速度更快?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38099959/