java - Java 8 中查询结果数据库的最优化方式

标签 java mysql spring jpa java-8

目前我正在使用 Java 8 开发 Spring/Hibernate 项目。

我现在必须从本地 MySQL 数据库查询结果。

我想出了两种方法:

  1. Jinq 使用 Java 8 流:

    customers.where(
        c -> c.getCountry().equals("Belgium")
    );
    
  2. Hibernate 查询 (HQL):

    Query query = session.createQuery("from Customers where Country = 'Belgium' ");
    List list = query.list();
    

使用时间戳,我能够测试执行时间(Jinq 的查询时间比 HQL 少)。

但就性能而言,Jinq 是否最适合这里的场景?是否有另一种更优化的查询方式?最终,该项目将每 10 分钟查询 300,000 到 1,000,000 个结果。

谢谢。

最佳答案

现在,如果您只是对每个查询进行全表扫描,那么使用哪一个并不重要。

同时,如果您对纯粹的性能感兴趣,您应该只使用原始查询。

就我个人而言,我有一个项目的规模可能与您的类似,而我的 JINQ 总是需要更短的时间。因此,只要使用您的 JINQ 解决方案就足够了。

如果有更多详细信息,我可以提供额外的帮助。

关于java - Java 8 中查询结果数据库的最优化方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43144922/

相关文章:

java - 使用对数据库的单次命中从多个表中删除

java - 在领域驱动设计中,一个事务可以修改多个聚合吗?

MySQL (MariaDB) float 可视化 : why are values rounded to hundreds or thousands?

mysql - 替换特定表中每一列中的字符串

java - 属性 'fixed-rate' 不允许出现在元素 'int:poller' 中

java - 如何使用 Spring 获取 Enum 的值

spring - 使用 MapStruct 将实体映射到带有 DI 的 DTO

javascript - 单击按钮时通过 javascript 调用 JSP 页面

java - Hadoop Java 字数统计调整不起作用 - 尝试对所有内容进行求和

java - 如何使用 Eclipse 调试器查看集合内对象的类型?