☰
MyBatis Plus 复杂报表场景优化实录:深分页、count 之痛与批量操作的真相
2026/10/22 7:34:12 网站建设 项目流程

MyBatis Plus 复杂报表场景优化实录:深分页、count 之痛与批量操作的真相

摘要:MyBatis Plus 在 CRUD 场景几乎开箱即用,但复杂报表/管理后台场景有四个高频翻车点:深分页拖库、分页插件的 count 性能、saveBatch 的伪批量、大结果集 OOM。这篇基于管理后台报表项目的优化实录,把四个问题各自的成因和工程解法讲透——包括一个反直觉结论:很多报表该写 XML 手写 SQL,而不是硬用 Wrapper。

关键词:MyBatis Plus、深分页、批量插入、ResultHandler、报表优化

适合人群:用 MP 做管理后台/报表的 Java 开发


一、翻车点 1:分页插件在深分页下的双重慢

MP 分页插件(PaginationInnerInterceptor)执行LIMIT 100000, 20时的两个性能问题:

  1. 深分页本身:MySQL 取前 100020 条丢弃(同系列《RDS 慢 SQL 治理》详述)
  2. count 查询:插件默认先执行SELECT COUNT(*),复杂 JOIN/WHERE 下这个 count 本身就是一条大 SQL——每翻一页付两次代价

解法组合:

// 1. count 关闭或优化Page<T>page=newPage<>(pageNo,20,false);// 按需关闭 count

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询