Java 过滤一组数据、选择查询或循环哪个更快?

Java 过滤一组数据、选择查询或循环哪个更快?,java,mysql,select,Java,Mysql,Select,假设我在MySql数据库中有大约10000行代码,我想计算多个值SUM。中位数,平均数 哪一个更快,用一个简单的SQL查询获取所有10000个,并使用Java对其进行迭代,然后进行计算或直接执行SQL查询选择sum。。;选择计数*?是否可以只执行一个返回所需值的查询? 编辑 是否有关于该主题的度量/统计数据? 可以通过连接2个或3个表来获取数据 谢谢使用MySQL函数比用Java编写代码更好更快。这是因为MySQL函数比Java更接近数据。此外,databaseMySQL函数针对此类函数进行了优

假设我在MySql数据库中有大约10000行代码,我想计算多个值SUM。中位数,平均数


哪一个更快,用一个简单的SQL查询获取所有10000个,并使用Java对其进行迭代,然后进行计算或直接执行SQL查询选择sum。。;选择计数*?是否可以只执行一个返回所需值的查询? 编辑

是否有关于该主题的度量/统计数据? 可以通过连接2个或3个表来获取数据 谢谢

使用MySQL函数比用Java编写代码更好更快。这是因为MySQL函数比Java更接近数据。此外,databaseMySQL函数针对此类函数进行了优化


如果您使用java,那么在应用任何逻辑之前,您将首先在内存中加载那么多数据。

MySql查询将更快,并且还可以节省大量内存和CPU时间。它的一般逻辑。

当然会有例外,但一般来说,最好让数据库引擎进行数据过滤、聚合、排序等。数据库设计用于处理这些内容。

这取决于

这里的大多数人说它更快,因为它更接近数据等

然而,这并不一定是真的

例如,如果筛选条件很复杂,如果结果数接近记录总数,并且如果DB机器速度不是很快,而您的应用程序速度却非常慢,那么在这种情况下,让DB完成获取所有记录的简单工作并在应用程序中完成工作可以快得多。我甚至没有提到DB的低可伸缩性,这可能会导致DB中的过滤比应用程序中的过滤慢

因此,没有经验法则


我的建议是,将简单而直接的过滤/聚合放在DB中,让DB做它擅长的工作。如果您需要额外的复杂计算来进行筛选,请在应用程序代码中进行,并对DB筛选结果执行。

不确定效率会有多大差异,但如果您可以使用直接SQL实现您想要的,我建议您这样做。那么您为什么需要数据库?将数据存储在纯文本文件中,并在Java中执行所有操作。是否可以只执行一个返回所需值的查询?-一个查询不是万能的。实际上,没有理由希望对所有内容都使用一个查询。这就像希望所有文件都是一行。@zerkms数据可以从连接表中提取……因此纯文本文件不是option@Moh:从您的问题来看,您是否希望使用联接并不明显。很明显,您希望在Java中选择所有内容并执行任何操作