改良分页逻辑

先看一段代码
这是一段熟悉的不能在熟悉的分页逻辑
访问了两次数据库
public Page findPageBy(String hql, int pageNo, int pageSize, Object... params){
int nPageNo = Math.max(1, pageNo);
int nPageSize = Math.max(1, pageSize);
int rowCount = (int)this.countRow("select count(*) " + removeSelect(hql), params);

if(rowCount == 0){
return new Page();
}else{
List rows = this.findBy(hql, Page.getStartOfPage(nPageNo, nPageSize), nPageSize, params);
return new Page(nPageNo, rowCount, nPageSize, rows);
}
}


这样的效率在项目里面是难以接受的

[b]可以采用冗余表或冗余字段的方式来改良

比如论坛中的帖子和回复,可以在主贴中添加一个冗余字段 post_num来解决

有些无法加字段的情况可以加一张表,缓存记录总数

这两种方式都能极大的改善程序的性能 ,当然前提条件是你的项目读远远大于写[/b]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值