批量操作与性能优化专题测试
考察知识点
- SQL 语句优化:动态 SQL 标签选择、索引利用、批量 SQL 生成与日志影响
- ExecutorType 批量执行:SIMPLE/BATCH/REUSE 三种执行器的特点与适用场景
- 结果集大小控制:fetchSize、Cursor、ResultHandler 流式处理机制
- 批量操作事务控制:事务边界、分段提交策略、异常回滚处理
1
单选题
在 MyBatis 中,以下哪种方式最适合实现"多条件可选查询"的 SQL 语句优化,避免全表扫描并提高执行效率?
2
多选题
在 MyBatis 项目中进行 SQL 语句优化时,以下哪些做法是正确的?
3
单选题
在 MyBatis 中处理大数据量查询时,以下哪种分页方式在数据量达到百万级时性能最优?
4
判断题
MyBatis 的 ResultHandler 回调接口可以在查询过程中逐行处理结果集,因此使用 ResultHandler 一定能避免大数据量查询时的 OOM 问题。
5
填空题
MyBatis 提供了三种 ExecutorType 执行器类型,分别用于不同的执行场景:
- 默认的执行器类型是 ___________________,它为每条 SQL 语句创建一个 PreparedStatement
- 批量执行时使用 __________________,它会复用 PreparedStatement 并将 SQL 语句加入批次,等待统一执行
- 可重用执行器类型是 __________________,它会缓存 PreparedStatement 对象,适用于频繁执行相同 SQL 的场景
6
多选题
关于 MyBatis 使用 ExecutorType.BATCH 进行批量操作,以下哪些说法是正确的?
7
单选题
在 MyBatis 中执行批量 INSERT 操作时,如果其中一条 SQL 执行失败,默认情况下会发生什么?
8
填空题
在 MyBatis 中处理大批量数据时,为了避免长事务导致的锁等待和内存问题,通常采用分段提交的策略:
- 设置合理的批量大小(如每 ______ 条记录为一批),控制单次事务的数据量
- 每批数据执行后调用 SqlSession 的 _______________() 方法执行批次 SQL
- 调用 SqlSession 的 ______() 方法提交当前批次事务
- 如果某批次失败,调用 SqlSession 的 ________() 方法回滚当前批次
- 在 Spring 环境中,也可以通过编程式事务管理器 ________________________ 实现细粒度的事务控制
9
填空题
在 MyBatis 中处理超大数据集时,为了避免一次性加载所有数据到内存,可以使用以下技术:
- 在 Mapper 方法上设置 _________ 参数,控制 JDBC 驱动每次从数据库获取的行数
- 使用 ______ 类型的返回值,实现真正的流式结果集处理
- 在 MySQL 数据库中,需要将 fetchSize 设置为 _________________ 才能启用真正的流式读取
- 使用流式处理时,Mapper 方法的返回值类型应该是 ______,并通过 _____________ 回调接口逐行处理结果
10
判断题
MyBatis 使用 标签生成批量 INSERT 语句时,如果一次插入的数据量过大(如上万条),会导致数据库的 redo log 和 undo log 急剧增长,可能引发数据库性能问题甚至磁盘空间不足。
📝 发现内容有误?点击此处直接编辑
想参加完整模拟考试?
小程序提供计时考试、自动评分和详细解析
长按或扫描二维码,立即体验