大数据量查询优化问题

cs_kill_you 2008-12-17 03:39:04


我的数据量是100万条记录,刚开始加载不慢,然后连续点击下一页,下一页,也不慢,

但我从第1页跳转到6000页就很慢,然后也连续点击下一页、下一页也很慢,

这是怎么回事啊,在数据库如何去做优化啊

hibernate的分页如下:

public int getTotalSize(String sql){
String hql = "select count(*) " + sql;
int count = ((Integer)this.getHibernateTemplate().find(hql).iterator().next()).intValue();
return count;
}

public List findAll(Integer currentPage, Integer pageSize, String sql) {
final int startRow = (currentPage - 1) * pageSize;
final int pageSize1 = pageSize;
final String userQuery = sql;

return this.getHibernateTemplate().executeFind(new HibernateCallback() {
public List doInHibernate(Session session)
throws HibernateException {
Query query = session.createQuery(userQuery);
query.setFirstResult(startRow);
query.setMaxResults(pageSize1);
List list = query.list();
return list;
}
});
}
...全文
481 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
huxuanhui 2008-12-20
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 wangjunjun55 的回复:]
你这是假分页 参考
select top index*pagesize * from table where id not in(select top (index-1)*pagesize from table)
[/Quote]

嗯 我一直用这种
效率 还不错的
wangjunjun55 2008-12-19
  • 打赏
  • 举报
回复
你这是假分页 参考
select top index*pagesize * from table where id not in(select top (index-1)*pagesize from table)
wangjunjun55 2008-12-19
  • 打赏
  • 举报
回复
你这是假分页 参考
select top index*pagesize * from table where id not in(select top (index-1)*pagesize from table)
wangjunjun55 2008-12-19
  • 打赏
  • 举报
回复
select top index*pagesize * from table where id not in(select top (index-1)*pagesize from table)
qqlpp 2008-12-19
  • 打赏
  • 举报
回复
帮顶
qqlpp 2008-12-19
  • 打赏
  • 举报
回复
不懂,up
lyfer 2008-12-19
  • 打赏
  • 举报
回复
你分页是不是用了not in??这个东西越向后越慢.
处理一下分页程序,网上有介绍分页的sql写法
尽量不要联合查询,如果100W联另外一个表100W,那就相当于处理了100W*100W条数据
听别人说的,具体我也不大清楚
FCPPS 2008-12-17
  • 打赏
  • 举报
回复
sql没写好
FCPPS 2008-12-17
  • 打赏
  • 举报
回复
100W也叫大
m7788 2008-12-17
  • 打赏
  • 举报
回复
拿出hibernate生成的sql语句去分析优化

25,985

社区成员

发帖
与我相关
我的任务
社区描述
高性能WEB开发
社区管理员
  • 高性能WEB开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧