使用查询语言Vs Java确定信息

使用查询语言Vs Java确定信息,java,sql,database,Java,Sql,Database,我有一个用Java编写的应用程序,在这里我从SQL数据库访问数据。在一些特定的场景中,我能够查询数据库中的信息,或者可以用java编写代码,根据范围内的对象获取所需的数据。我的问题是,在可能的情况下使用查询还是编写java代码来实现所需的功能更有效。也许一个特定的场景会有所帮助 我有一个场景,我查询数据库以获得一个列表。之后,我编写了一些JAVA代码,从列表中只选择其中一个特定对象。在这个场景中,我使用java来建立我需要的对象 另一种方法是查询数据库,并在我的查询中将两个表连接在一起,只返回所

我有一个用Java编写的应用程序,在这里我从SQL数据库访问数据。在一些特定的场景中,我能够查询数据库中的信息,或者可以用java编写代码,根据范围内的对象获取所需的数据。我的问题是,在可能的情况下使用查询还是编写java代码来实现所需的功能更有效。也许一个特定的场景会有所帮助

我有一个场景,我查询数据库以获得一个列表。之后,我编写了一些JAVA代码,从列表中只选择其中一个特定对象。在这个场景中,我使用java来建立我需要的对象

另一种方法是查询数据库,并在我的查询中将两个表连接在一起,只返回所需的一个对象。在这个场景中,我将使用查询语言来建立所需的对象


任何提示或建议都将不胜感激,谢谢

查询数据库的速度很快,因为数据库是在这方面设计的。
此外,您将只在java代码中获得所需的信息,这样您就不需要为其他不可用的对象提供任何额外的内存。

查询数据库的速度很快,因为数据库是在这方面设计的。 此外,您将只在java代码中获得所需的信息,这样您就不需要为其他不可用的对象提供额外的内存。

这样想。SQL查询比java代码更接近数据。java还需要加载所有数据以执行过滤。如果您能够编写高效的SQL,那么SQL总是比Java好

在涉及大量计算和业务逻辑的场景中,Java过滤更可取。与数据库相比,我个人更喜欢用Java编写复杂的业务逻辑。

这样想。SQL查询比java代码更接近数据。java还需要加载所有数据以执行过滤。如果您能够编写高效的SQL,那么SQL总是比Java好


在涉及大量计算和业务逻辑的场景中,Java过滤更可取。与数据库相比,我个人更喜欢用Java编写复杂的业务逻辑。

通常情况下,数据库处理查询的速度比使用Java过滤列表更快。使用应用程序代码的唯一好时机是,如果筛选要求非常复杂,以至于无法用查询语言表达,或者最终不得不多次查询数据库以获取所需内容


这两个问题都可以通过坐下来专注于设计智能查询来解决,这同样会导致数据库胜出。

通常情况下,数据库处理查询的速度比使用Java过滤列表更快。使用应用程序代码的唯一好时机是,如果筛选要求非常复杂,以至于无法用查询语言表达,或者最终不得不多次查询数据库以获取所需内容


这两个问题都可以通过坐下来,专注于设计智能查询来解决,再次导致数据库胜出。

您的问题有一些变幻莫测的地方,因此很难具体说明

总的来说,过早地优化并不是解决问题的办法。您最好以最直接的方式编写代码,然后使用生成的信息来决定需要哪些改进

假设1 SQL查询的结果列表非常庞大。在这种情况下,最好使用SQL来限制结果

假设2 结果列表很小。使用哪种方法可能不会对性能产生太大影响,但使用Java在事后处理列表会使代码更加复杂

假设3 上述任一场景,但底层数据不经常更改,或者经常被请求。您可以缓存数据,用Java制作副本,并对这些副本进行操作以对其进行排序、过滤等。在某些情况下可能会更快,但会产生更复杂的代码

假设4
结果列表不是很大,但它是一个复杂且执行缓慢的查询的结果。可能会缓存结果,当您需要筛选或排序数据的变体时,请使用Java复制缓存的列表,并对列表的副本进行排序和/或筛选。或者在数据库中创建一个物化视图并查询它。

您的问题有一些古怪之处,因此很难具体说明

总的来说,过早地优化并不是解决问题的办法。您最好以最直接的方式编写代码,然后使用生成的信息来决定需要哪些改进

假设1 SQL查询的结果列表非常庞大。在这种情况下,最好使用SQL来限制结果

假设2 结果列表很小。可能没有 ct性能与您使用的方法有很大关系,但使用Java在事后操纵列表会使代码更加复杂

假设3 上述任一场景,但底层数据不经常更改,或者经常被请求。您可以缓存数据,用Java制作副本,并对这些副本进行操作以对其进行排序、过滤等。在某些情况下可能会更快,但会产生更复杂的代码

假设4 结果列表不是很大,但它是一个复杂且执行缓慢的查询的结果。可能会缓存结果,当您需要筛选或排序数据的变体时,请使用Java复制缓存的列表,并对列表的副本进行排序和/或筛选。或者在数据库中创建一个物化视图并查询它