Java 查询数据库的效率更高的是什么

Java 查询数据库的效率更高的是什么,java,mysql,performance,java-8,coding-efficiency,Java,Mysql,Performance,Java 8,Coding Efficiency,我们是否应该通过向SQL查询添加多个条件/where子句来查询具有更多筛选的表,并获取特定数据 或者在java类中提取所有数据并进行过滤 寻找编码实践的有效方法 例如: 具有多列Id、名称、位置的表 我需要拉的地方ID列表应该是表单placesList和名称应该匹配namesList (一) 公共列表getid(); 对结果应用java8过滤器 注:为了便于理解,我在上面的示例中使用了名称。在实时情况下,数据是巨大的,并且表中有多个字段和行。用于筛选的列表也很大。如果可能,您总是希望在数据库中执

我们是否应该通过向SQL查询添加多个条件/where子句来查询具有更多筛选的表,并获取特定数据 或者在java类中提取所有数据并进行过滤

寻找编码实践的有效方法

例如:

具有多列Id、名称、位置的表

我需要拉的地方ID列表应该是表单placesList和名称应该匹配namesList

(一)

公共列表getid(); 对结果应用java8过滤器


注:为了便于理解,我在上面的示例中使用了名称。在实时情况下,数据是巨大的,并且表中有多个字段和行。用于筛选的列表也很大。

如果可能,您总是希望在数据库中执行操作。您希望避免将数据从数据库传输到应用程序,从而耗尽内存,而只是将其删除


数据库在做这些事情时非常有效,因此您需要充分利用它们。

直接查询数据库,而不是在Java应用程序中下载数据。它将减少从数据库到java应用程序的延迟

但是在过滤器中使用用户输入时要非常小心。在数据库查询中使用用户输入之前,请确保已对其进行了清理,以避免SQL注入

如果您更担心的是安全性而不是性能,那么在Java应用程序中过滤数据(如果数据不是海量的)


但我强烈建议通过确保必要的保护措施来过滤数据库本身的数据。

最好的方法是在数据库上使用所需的过滤器进行查询,这将减少来回从应用程序和数据库获取的数据量,还将减少I/O操作的时间(因为通过网络传输大量数据需要一些延迟)。 还可以减少在应用程序端处理大量数据所需的内存开销

此外,当您在多个字段上运行查询和筛选时,您可以在字段上添加索引(如果需要),这将缩短查询获取时间


希望它能回答我不明白这个问题
(SELECT id 
   FROM Person p 
  WHERE p.name IN (<name_list>) 
    AND p.place IN (<place_list>) 
  order 
     by p.id asc)

public List<Long> getIds(@BindIn("name_list") List<String> name_list, @BindIn("place_list") List<String> place_list);
(SELECT id 
   FROM Person p)