【问题标题】:join query with jpaTemplate is super slow使用 jpaTemplate 连接查询超级慢
【发布时间】:2013-12-04 04:15:32
【问题描述】:

我的查询如下所示:

Query q = entityManager.createQuery("SELECT a FROM ObjectA a JOIN a.objectB b JOIN b.objectC c WHERE a.col1 = :val1 ORDER BY c.val1 ASC", ObjectA.class);
q.setParameter("val1", "my val");
q.setFirstResult(startIndex).setMaxResults(maxNumRecords);
return q.getResultList();

此查询花费的时间比我预期的要长得多。 关于如何加快速度的任何想法?写这个的其他方法?

【问题讨论】:

  • 你有没有尝试对此进行解释计划。这样做时请确保您使用变量,这可能会影响您的数据库使用正确索引的能力。

标签: java mysql hibernate jpa inner-join


【解决方案1】:

检查 a.col1 和 c.val1 上是否有索引

【讨论】:

  • 我们在 c.val1 上有索引,但在 a.col1 上没有。将索引添加到 a.col1 会有很大帮助吗?
  • 我怀疑它可能会因为对象的水合而变慢,但我不知道如何只查询某些列。
  • @abcXYZ 是的,确实,只要你使用 WHERE、ORDER BY 等,你绝对需要索引。
猜你喜欢
  • 1970-01-01
  • 2011-07-23
  • 2013-07-16
  • 1970-01-01
  • 1970-01-01
  • 2022-10-04
  • 2019-07-26
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多