在uniqueResult()之前使用setMaxResults(1)进行hibernate优化?

时间:2016-03-23 10:24:32

标签: java hibernate sqlperformance

写作

<tr><td class="text-left">Monday</td> <td class="text-right"><?php echo $mondayopen->nodeValue ?> - <?php echo $mondayclosed->nodeValue ?></td> </tr>

比写作更好

session.createCriteria(Person.class) .add(Restrictions.eq("id", personId)) .setMaxResults(1) .uniqueResult();

从优化的角度来看?第一个查询会更快吗?

1 个答案:

答案 0 :(得分:7)

有时将结果集行明确限制为预期数量可能会提示数据库以构建更优化的查询执行计划。

然而,在大多数数据库中,通过主键查询是最佳的过滤条件,因此任何附加条件都不会带来任何好处。实际上,额外的sql片段只会增加db优化器丢弃冗余过滤条件所花费的语句解析时间和时间。