【问题标题】:Is the performance of raw sql much better than using spring-data-how?原始 sql 的性能是否比使用 spring-data-how 好得多?
【发布时间】:2019-11-29 02:11:33
【问题描述】:

我想通过连接三个表的每个选择请求请求大量记录(100000 到 1000000)。使用 nativeSQL 而不是使用 spring-data-jpa 将其映射到 @Entity 对象,性能会更好吗?

谢谢!

【问题讨论】:

  • 查询这么多数据会对性能和内存产生影响,不管是native还是jpa。您应该考虑使用分页
  • 是的,100000 将是包的大小。必须迁移的记录总数接近 70,000,000,000

标签: mysql spring spring-boot spring-data-jpa


【解决方案1】:

JPA 和每个 ORM 都将您的查询结果转换为域对象。 这当然需要资源。 Spring Data JPA 为其添加了潜在的转换,并预处理您的查询以支持设置参数的奇特方式。

如果您要选择大量数据,那么语句的预处理可能就没有那么重要了。 但是转换为域对象会。

您使用了“迁移”一词,这听起来像是您要选择数据,然后立即将其写入其他地方。如果是这种情况,请使用纯 SQL 并直接在 ResultSet 上工作,告诉驱动程序使其只读且只转发。见Understanding Forward Only ResultSet

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-08-18
    • 1970-01-01
    • 2014-10-31
    • 1970-01-01
    • 1970-01-01
    • 2017-09-26
    • 1970-01-01
    • 2018-04-02
    相关资源
    最近更新 更多