java - SQL(例如 mysql、postgresql)与 java8 流性能相比,速度更快?

标签 java mysql postgresql

例如 `

 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 执行这些操作是否更快,那么你几乎找不到这样的情况你最好通过流来完成它。

数据库被设计得非常快,流被设计得易于使用。 您可以找到与流性能相关的问题( herehere ,以及其他问题),这些问题表明流确实很慢。流可以并行工作以变得更快,但数据库也可以这样做。

关于java - SQL(例如 mysql、postgresql)与 java8 流性能相比,速度更快?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38099959/

相关文章:

postgresql - 带有 INSTEAD OF 触发器的 Postgres INSERT ON CONFLICT 行为

java - provider用在方法声明中是什么意思?

java - 有什么方法可以下载旧版本的 appcompat 库吗?

java - 将新元素合并到 xml 文件并按年份分组

postgresql - 替代 postgres 中用于脚本编写的列表命令

postgresql - 外键可以用 `check` 表示吗?

java - 线程中的异常 "main"递归中的 java.lang.StackOverflowError

php - MySQL 组按 : How to return multiple rows?

java - 使用 Spring 和 Jdbc 访问数据库

MYSQL 在一列上选择两个值