本来分页查询速度比较快,可是界面要显示总页数,而总页数查询实际是执行了一次全结果集查询,耗时很多。
请问如何改进??
比如一页显示10条记录,而总共有1M记录。
我很土的把结果集取出来.list.size,超慢
hibernate有好的方法吗?

解决方案 »

  1.   

    你不会 select count(*) as total from myTable先查询拿到一个总数吗?
    100万的话,速度还是有点慢。不过如果是 MySQL 的 MyISAM 引擎,可以瞬间完成。
      

  2.   

    count(*)了,速度大概在3秒以上,就不能在优化了吗?
      

  3.   

    count(*)换成count(主键)好象又要好点
      

  4.   

    其实...俺就是用的count(id)...
      

  5.   


    应该没有区别 你的表里应该有索引吧 你可以查一次总数 保存在页面的一个命名属性里 每次下一页或者上一页的时候对这个属性的值传到Dao 就可以减少一次查询了不过这样实时性不好 假如翻页的同时有数据更新 就不太好了~~