gpt4 book ai didi

java - 您多久编写一次新的 SQL 查询或尝试使用现有的 SQL 查询?

转载 作者:行者123 更新时间:2023-12-02 09:06:42 27 4
gpt4 key购买 nike

我没有找到类似的问题。我很想听听建议和意见。

很明显,最好有一个只返回您需要的信息的查询。如果我们使用更大的数据库,我们通常已经对每个表进行了大量查询,这些查询具有不同的条件,简单的、复杂的或动态的。

例如:

SELECT * FROM transaction tr WHERE tr.progress_date = '?'; -- about 20 rows

但是,当我们在某些时候需要数据库中的特定信息时。您是否总是为这种情况编写新的查询?例如:

SELECT SUM(tr.amount) FROM transaction tr WHERE tr.progress_date = ? AND tr.sender = ?;

或者使用一些现有的(如果相似)并且不返回更多数据,再加上在后端进行额外的简单过滤或搜索?例如:

SELECT * FROM transaction tr WHERE tr.progress_date = '?'; -- about 20 rows

|
V

double sum = transactions.stream().mapToDouble(t -> t.getAmount()).sum();

请注意,它不是一个小软件,经常会出现一种新情况,即仅针对一种特定情况需要某些信息。

假设数据没有被缓存,并且是Oracle、Postgres或MySql数据库

最佳答案

您希望 RDBMS 在查询大型表时承担繁重的工作。显然,始终使用带有参数的PreparedStatement,并在需要时使用索引或执行连接。

如果数据集较小(即 20 行示例),在 Java 代码中执行过滤/处理是可以接受的,有时可能是一种优势,因为您可以让不同的 Java 方法使用一个查询。

我会(并且已经)采用混合方法,当性能差异明显时,可以选择稍后使用专用 SQL 查询重构内存中 Java 过滤。

关于java - 您多久编写一次新的 SQL 查询或尝试使用现有的 SQL 查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59759812/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com