锁定老帖子 主题:发疯Hibernate分页问题,性能优化!
精华帖 (2) :: 良好帖 (0) :: 新手帖 (18) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2008-08-01
查询结果写到session里用display tag
|
|
返回顶楼 | |
发表时间:2008-08-02
可以参考论坛的实现方法,做一个cache保存总数。添加就+1,删除就-1.
时不时的修正一下数据就可以了。 |
|
返回顶楼 | |
发表时间:2008-08-02
smilerain 写道 可以参考论坛的实现方法,做一个cache保存总数。添加就+1,删除就-1.
时不时的修正一下数据就可以了。 查询多半是带条件的,结果往往不是缓存的总数。 论坛的这种缓存策略只适合特定需求的。 |
|
返回顶楼 | |
发表时间:2008-08-03
我现在用的是displaytag经过优化了。。其实也不错 而且代码量很少
|
|
返回顶楼 | |
发表时间:2008-08-04
select count(*) 还能再优化吗?,还是把最常用的分页,第一页count(*)后结果和列表结果,缓存的好。第一页是最常用的了。
|
|
返回顶楼 | |
发表时间:2008-08-04
Criteria criteria = session.createCriteria(Blog.class);
return criteria.setProjection(Projections.rowCount()).uniqueResult(); |
|
返回顶楼 | |
发表时间:2008-08-04
池中物 写道 Criteria criteria = session.createCriteria(Blog.class);
return criteria.setProjection(Projections.rowCount()).uniqueResult(); 这个就是select count(*) |
|
返回顶楼 | |
发表时间:2008-08-07
4300万的数据 用户不可能查出这么多的数据,1页1页的翻着看吧。
我要是用户我准是疯了。 可能给用户分页100页,每页100条(那就是100×100=10000条),就已经疯了。当然,有时候他想知道总数,那就给他提供一个可查看总数的地方。不过我认为,分页这里没有几个用户分了100页,1页1页看的。 所以可以考虑在查询条件方面限制用户查出那么多的数据,比如用户必须选择某个查询条件等。 而且,只在第1次访问的时候计算总数,其他翻页的时候把总数和分页数等传过去好了。 |
|
返回顶楼 | |
发表时间:2008-08-19
放一个List getPage(int page)的方法出来,如果返回的list是empty的, 给用户弹个对话框就说找不着了。至于跳转....提供首尾页和上下翻的按钮, 再提供一个页码输入框......大不了我不告诉你到底有多少记录..... 一定要计算Count的话,尽量避免count(*)的出现。 不过我实际环境中还没用过这种方法. 只是一个想法。 计算Count数据库可能有点小负担,而且还是count(*)。 |
|
返回顶楼 | |
发表时间:2008-08-19
caohj 写道 建议用一个字段来存储count数,当有增加一条记录时count数+1,删除对应的一条记录时,count -1,查询分页的取count数时候直接去取一个字段记录就可以了.
按不同条件进行查询的话,好象就不好用了 我是使用SELECT COUNT 来返回总数 |
|
返回顶楼 | |