先看一段代码
这是一段熟悉的不能在熟悉的分页逻辑
访问了两次数据库
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);
}
}
这样的效率在项目里面是难以接受的
可以采用冗余表或冗余字段的方式来改良
比如论坛中的帖子和回复,可以在主贴中添加一个冗余字段 post_num来解决
有些无法加字段的情况可以加一张表,缓存记录总数
这两种方式都能极大的改善程序的性能 ,当然前提条件是你的项目读远远大于写
分享到:
相关推荐
这个"ScrollView分页 仿京东淘宝商品详情 改良版(新增到顶部)"项目就是针对这一需求而设计的。 分页效果的核心在于,当用户滚动到ScrollView的底部时,能够自动加载下一个“页面”或布局,模拟出无限滚动的效果。...
3. **分页逻辑**:计算总页数,这通常基于查询结果的总数除以每页的记录数。同时,需要处理当前页的索引,确保其在有效范围内。 4. **函数设计**:一个通用的分页函数应该接受必要的参数,如每页记录数、当前页数和...
2. **易于集成**:JadeControls.Pager.dll是组件的核心库文件,包含了所有必要的分页逻辑。只需将其添加到项目引用中,就可以在ASP.NET页面上直接使用分页控件。 3. **高度可配置**:可以调整每页显示的记录数,...
总之,`toPage.js`是一个经过改良的jQuery分页插件,它简化了动态数据分页的实现,并提供了自定义样式和首页、末页跳转的功能。理解其工作原理和使用方法,将有助于开发者在项目中实现高效、美观的分页效果。
这在处理无限滚动列表或者分页加载的数据流中特别有用,用户无需手动翻页,只需要持续上拉就能看到新的内容。对于那些需要不断加载新数据的应用,如微博、电商产品列表等,上拉加载能提供无缝的浏览体验。 ...
这在处理分页数据或者无限滚动列表时非常实用,用户无需手动翻页,而是可以连续浏览内容。XListView通过监听滚动事件,当判断出用户已经滚动到列表底部时,会触发加载更多数据的逻辑,通常是向服务器发送请求获取...
本框架是基于IBM开发网上的相关文章进行改良和扩展的结果,旨在提供一个易用且功能丰富的工具,使得数据库查询、插入、更新和删除等操作更为便捷。 一、框架设计思想 1. **面向对象封装**:框架以面向对象的方式...
12.1.2 Rownum分页改写 337 12.1.3 Hint直接路径改造 338 12.1.4 只取你所需的列 339 12.1.5 避免或者减少递归调用 341 12.1.6 ROWID优化应用 347 12.2 设法避免外因影响 350 12.2.1 Hint改写确保执行计划...
12.1.2 Rownum分页改写 337 12.1.3 Hint直接路径改造 338 12.1.4 只取你所需的列 339 12.1.5 避免或者减少递归调用 341 12.1.6 ROWID优化应用 347 12.2 设法避免外因影响 350 12.2.1 Hint改写确保执行计划...