全部学科
Python全栈
python
NodeJS全栈
nodejs
小程序首页

JAVA数据库优化与JDBC高级专题测试

20 题 50 分钟 难度:

考察知识点

本试卷涵盖以下核心知识点:

数据库连接池优化(6题)

  • 连接池作用与主流连接池对比(HikariCP、Druid)
  • 连接池大小设置原则
  • 连接泄漏检测配置
  • 连接池关键配置参数
  • Druid监控功能优势

PreparedStatement与批处理(2题)

  • rewriteBatchedStatements参数优化
  • 批处理分批次执行原则

事务管理与隔离级别(4题)

  • 数据库隔离级别与并发问题
  • 不可重复读与幻读的区别
  • Spring事务失效场景

结果集映射与元数据(1题)

  • ResultSet游标类型与性能

SQL注入防范(2题)

  • Statement拼接SQL风险
  • MyBatis #{}和${}区别

大数据量分页查询(2题)

  • 深分页子查询优化方法
  • 分页优化核心方法总结

连接泄漏检测与监控(2题)

  • 连接泄漏表现与后果
  • 连接池监控关键指标

数据库索引优化(1题)

  • MySQL InnoDB默认索引结构
1
判断题

使用数据库连接池可以复用连接,避免频繁创建和销毁连接,显著提升数据库访问性能。

A

B

2
单选题

Spring Boot 2.x默认使用的数据库连接池是?

A

Druid

B

HikariCP

C

DBCP

D

C3P0

3
单选题

数据库连接池大小设置的原则是?

A

越大越好,避免连接不足

B

根据数据库处理能力和并发需求合理设置,过大反而影响性能

C

固定为10,所有应用都适用

D

必须等于数据库最大连接数配置

4
单选题

连接池配置连接泄漏检测(leakDetectionThreshold)的作用是?

A

检测数据库连接是否断开

B

检测连接使用后未归还池,定位泄漏代码

C

检测SQL语句执行是否正确

D

检测数据库服务器是否宕机

5
多选题

数据库连接池的关键配置参数有哪些?

A

maximumPoolSize:最大连接数

B

minimumIdle:最小空闲连接数

C

connectionTimeout:获取连接超时时间

D

idleTimeout:空闲连接超时回收时间

6
多选题

Druid连接池相比HikariCP的独特优势有哪些?

A

内置SQL监控和统计功能

B

SQL防火墙,防止SQL注入攻击

C

慢SQL记录和日志输出

D

Web监控页面,可视化查看连接池状态

7
单选题

MySQL JDBC驱动中,rewriteBatchedStatements=true参数的作用是?

A

自动重写错误的SQL语句

B

将批量插入重写为多值INSERT语句,大幅提升性能

C

自动回滚失败的批量操作

D

限制批量操作的最大数量

8
单选题

批量处理大数据时,为什么需要分批次执行而不是一次性全部添加?

A

数据库不支持一次性处理太多数据

B

避免内存溢出和单次事务过大,平衡性能与资源占用

C

批处理只能处理固定数量的数据

D

分批次执行比一次性执行性能更高

9
单选题

数据库隔离级别最低的是READ UNCOMMITTED,它可能产生什么问题?

A

只可能产生脏读

B

可能产生脏读、不可重复读、幻读

C

不会产生任何并发问题

D

只可能产生幻读

10
单选题

不可重复读和幻读的区别是?

A

不可重复读是数据被修改,幻读是数据被删除

B

不可重复读是某行数据被修改,幻读是行数变化(插入或删除)

C

不可重复读和幻读是同一问题

D

不可重复读只发生在低隔离级别,幻读只发生在高隔离级别

11
多选题

以下关于数据库隔离级别的描述,哪些是正确的?

A

READ UNCOMMITTED可能产生脏读、不可重复读、幻读

B

READ COMMITTED避免脏读,但仍可能不可重复读和幻读

C

REPEATABLE READ避免脏读和不可重复读,标准SQL下仍可能幻读

D

SERIALIZABLE避免所有并发问题,但性能最差

12
多选题

以下哪些情况会导致Spring事务失效?

A

方法不是public,事务注解只对public方法有效

B

同类内部调用事务方法,未经过代理

C

异常被catch捕获未抛出,事务无法感知失败

D

抛出非RuntimeException异常,默认只回滚RuntimeException

13
单选题

JDBC ResultSet的类型TYPE_FORWARD_ONLY表示什么?

A

只能向前滚动,性能最优,是默认类型

B

可以任意方向滚动,可感知自身更新

C

只能向后滚动

D

可以缓存所有数据到内存

14
单选题

以下哪种方式存在SQL注入风险?

A

使用PreparedStatement并绑定参数

B

使用MyBatis的#{param}参数绑定

C

使用Statement拼接用户输入到SQL

D

使用JPA/Hibernate的参数化查询

15
单选题

MyBatis中#{}和${}的区别是?

A

#{}和${}效果相同,只是语法不同

B

#{}是参数绑定防注入,${}是字符串替换可能注入

C

#{}用于表名,${}用于字段名

D

${}比#{}性能更高

16
单选题

MySQL深分页优化中,使用子查询的方式是?

A

SELECT * FROM t LIMIT 100000, 10

B

SELECT * FROM t WHERE id IN (SELECT id FROM t LIMIT 100000, 10)

C

SELECT * FROM t INNER JOIN (SELECT id FROM t LIMIT 100000, 10) AS tmp ON t.id = tmp.id

D

SELECT * FROM t WHERE id > 100000 LIMIT 10

17
填空题

MySQL深分页优化:!!1游标分页!!使用WHERE id > last_id避免OFFSET扫描;!!2子查询优化!!先SELECT id覆盖索引再JOIN回表;!!3总数缓存!!避免每次COUNT(*);!!4预估总数!!使用_________________获取近似值。

18
判断题

数据库连接泄漏是指程序获取连接后未正确关闭,导致连接无法归还池,最终连接池耗尽。

A

B

19
单选题

生产环境需要监控的连接池关键指标不包括以下哪项?

A

ActiveConnections:当前活跃使用中的连接数

B

IdleConnections:空闲可用连接数

C

ThreadsAwaitingConnection:等待获取连接的线程数

D

ConnectionCreatedTime:每个连接创建的具体时间

20
单选题

MySQL InnoDB默认使用的索引结构是?

A

B树

B

B+树

C

Hash索引

D

全文索引

← 上一个试卷 JAVA性能调优实战专题测试
下一个试卷 → JAVA数组与方法专题测试

📝 发现内容有误?点击此处直接编辑

想参加完整模拟考试?
小程序提供计时考试、自动评分和详细解析

长按或扫描二维码,立即体验

扫码体验小程序
马上就来
使用微信扫描二维码
立即体验完整题库