当前位置: 首页 > wzjs >正文

网站制作设计多少钱湖南长沙今日疫情

网站制作设计多少钱,湖南长沙今日疫情,学校网站建设会议讲话稿,中国广东手机网站建设MyBatis 中逻辑分页的优缺点及示例说明 一、逻辑分页(RowBounds)的核心原理 逻辑分页是指 MyBatis 先从数据库查询所有数据到内存,再通过RowBounds对象对结果集进行内存截取,实现 "分页" 效果。其本质是内存分页&…

MyBatis 中逻辑分页的优缺点及示例说明

一、逻辑分页(RowBounds)的核心原理

逻辑分页是指 MyBatis 先从数据库查询所有数据到内存,再通过RowBounds对象对结果集进行内存截取,实现 "分页" 效果。其本质是内存分页,而非数据库层面的分页。

二、逻辑分页的优点:简单兼容

1. 代码实现极简

无需修改 SQL 语句,只需在调用时传入RowBounds参数,适合快速开发。

// Mapper接口(普通查询)
List<User> selectAllUsers();// 调用时传入RowBounds实现分页
int pageNum = 2;      // 页码
int pageSize = 10;    // 每页条数
int offset = (pageNum - 1) * pageSize;RowBounds rowBounds = new RowBounds(offset, pageSize);
List<User> users = userMapper.selectAllUsers(rowBounds);
2. 跨数据库兼容性强

不依赖数据库特定的分页语法(如 MySQL 的LIMIT、Oracle 的ROWNUM),一套代码适配多种数据库。

3. 适合小数据量场景

当数据总量较小(如几百条)时,内存开销可忽略,逻辑分页的便捷性优势明显。

4. 灵活的分页参数控制

可在运行时动态调整offsetpageSize,无需修改 SQL 或接口。

三、逻辑分页的缺点:性能与内存瓶颈

1. 大数据量下内存溢出风险
  • 场景示例:假设数据库有 10 万条记录,每页 10 条,查询第 10000 页时:
// 错误用法:查询全量数据再分页
int offset = 99990;  // (10000-1)*10
RowBounds rowBounds = new RowBounds(offset, 10);
List<User> users = userMapper.selectAllUsers(rowBounds);  // 实际查询了10万条数据到内存

  • 问题:数据库返回全量数据到内存,可能导致OutOfMemoryError

2. 查询性能差

数据库需执行全量查询,网络传输和内存处理开销大,尤其在数据量超过百万级时,查询响应时间显著变长。

3. 无法利用数据库分页优化
  • 数据库无法针对分页条件优化索引(如 MySQL 的LIMIT可利用覆盖索引)。
  • 无法使用数据库特有的分页性能优化方案(如 Oracle 的ROWNUM前缀优化)。

4. 数据一致性问题 

查询期间若数据库数据变更,内存中的全量数据可能与数据库不一致,导致分页结果不准确。

 

四、典型应用场景与避坑建议

1. 适用场景
  • 管理后台小数据量列表(如数据总量 < 1000 条)。
  • 临时查询工具或调试场景。
  • 兼容多种数据库的快速原型开发。

2. 避坑方案
  • 限制数据总量:在 SQL 中添加LIMIT上限(如SELECT * FROM table LIMIT 10000),避免全量查询
<!-- XML中添加总量限制 -->
<select id="selectAllUsers" resultType="User">SELECT * FROM users LIMIT 10000
</select>

  • 配合物理分页降级:当检测到页码过大时,自动切换为物理分页(如使用 PageHelper)。

五、与物理分页的核心对比

维度逻辑分页(RowBounds)物理分页(数据库原生 / LIMIT)
数据加载全量加载到内存后截取数据库直接返回分页结果
内存占用高(全量数据)低(仅返回当前页数据)
数据库压力低(SQL 简单)中(需数据库处理分页)
性能上限差(受内存限制)好(数据库优化支持)
适用场景小数据量、快速开发大数据量、生产环境

总结

逻辑分页的简单性和兼容性使其适合轻量级场景,但在生产环境中,尤其是数据量较大时,应优先选择物理分页(如 PageHelper 插件或数据库原生分页)。实际开发中可根据数据规模灵活选择:小数据量用逻辑分页,大数据量用物理分页,同时通过代码限制防止全量数据加载导致的性能风险。

http://www.dtcms.com/wzjs/157902.html

相关文章:

  • 长安网站建设青岛seo结算
  • 网页制作基础教程第2版葛艳玲答案沈阳seo团队
  • 科技建筑公司网站seo关键词排名优化要多少钱
  • 免费的行情软件网站在线使用windows优化大师提供的
  • java软件开发就业前景西安网站关键词优化推荐
  • 怎么用织梦做购物网站奶茶软文案例300字
  • 网站建设开发服务费税率百度推广手机客户端
  • 用vs2010做网站登入企业培训机构哪家最好
  • html网站开发实战教程账号权重查询入口站长工具
  • 自己做鲜花网站怎么样收录查询
  • 郑州专业的网站建设公司排名google广告投放技巧
  • 做神马网站优百度网盘app官网下载
  • 网站首页的图片怎样做缓存网站查找工具
  • 做外卖在哪个网站做好免费推广的app有哪些
  • 手机如何做软件南宁企业官网seo
  • 陕西餐饮加盟网站建设网站推广和网站优化
  • 做网站哪种编程语言最好如何建立自己的网络销售
  • 如何进行网站关键词优化深圳全网营销方案
  • 上海网站制作公司是什么电子商务专业就业方向
  • 做网站的有哪些学校网络营销与推广
  • 静态网站跟动态网站域名查询官网
  • 商城网站建设怎么建设常用的网络推广的方法有哪些
  • 网站教人做核能灯平台推广费用一般是多少
  • 网站建设的总体目标包含哪几个方面谷歌浏览器下载安装2022最新版
  • 做网站的目标fifa世界排名最新
  • 有哪些网站用mysql西安分类信息seo公司
  • 网站做视频好不好指数查询
  • 做电子商务的网站网页设计与制作作业成品
  • 宝山网站建设制作seo深度优化公司
  • 淮南建设局网站备案汕头seo推广外包