JAVA面试专题:数据库设计与优化
需积分: 1 54 浏览量
更新于2024-08-05
收藏 701KB PDF 举报
JAVA_mysql面试专题18道
在本篇资源中,我们将讨论数据库 normalization 的三个范式、数据库优化经验、索引的种类和工作机制等知识点。
**数据库 normalize 三范式**
数据库 normalization 是一种将关系型数据库设计成符合某些规则的过程,以减少数据冗余和依赖关系。数据库 normalization 的三个范式分别是第一范式(1NF)、第二范式(2NF)和第三范式(3NF)。
1. **第一范式(1NF)**:字段具有原子性,不可再分。所有关系型数据库系统都满足第一范式,数据库表中的字段都是单一属性的,不可再分。
2. **第二范式(2NF)**:在第一范式(1NF)的基础上建立起来的,即满足第二范式(2NF)必须先满足第一范式(1NF)。要求数据库表中的每个实例或行必须可以被惟一地区分。通常需要为表加上一个列,以存储各个实例的惟一标识。这个惟一属性列被称为主关键字或主键。
3. **第三范式(3NF)**:满足第三范式(3NF)必须先满足第二范式(2NF)。简而言之,第三范式(3NF)要求一个数据库表中不包含已在其它表中已包含的非主关键字信息。所以第三范式具有如下特征:每一列只有一个值、每一行都能区分、每一个表都不包含其他表已经包含的非主关键字信息。
**数据库优化经验**
1. **使用 PreparedStatement**:PreparedStatement 一般来说比 Statement 性能高。一个 SQL 发给服务器去执行,涉及步骤:语法检查、语义分析、编译、缓存。
2. **外键约束的影响**:有外键约束会影响插入和删除性能,如果程序能够保证数据的完整性,那在设计数据库时就去掉外键。
3. **适当冗余**:表中允许适当冗余,譬如,主题帖的回复数量和最后回复时间等。
4. **UNION 和 UNION ALL**:UNION 和 UNION ALL 都是将两个结果集合并为一个,但这两者从使用和效率上来说都有所不同。 UNION 在进行表链接后会筛选掉重复的记录, Union All 不会去除重复记录。 Union 将会按照字段的顺序进行排序;Union All 只是简单的将两个结果合并后就返回。
**索引的种类**
索引是数据库管理系统中一个排序的数据结构,它可以提高数据检索的速度。
1. **普通索引**:即针对数据库表创建索引。
2. **唯一索引**:与普通索引类似,不同的是:MySQL 数据库索引列的值必须唯一,但允许有空值。
3. **主键索引**:它是一种特殊的唯一索引,不允许有空值。一般是在建表的时候同时创建主键索引。
4. **组合索引**:为了进一步榨取 MySQL 的效率,就要考虑建立组合索引。即将数据库表中的多个字段联合起来作为一个组合索引。
**索引的工作机制**
数据库索引是一种特殊的数据结构,它可以提高数据检索的速度。索引的工作机制是将数据库表中的数据按照一定的顺序排列,使得数据检索变得更加快速和高效。
2024-06-17 上传
2021-09-23 上传
2022-02-28 上传
2022-02-28 上传
2021-06-02 上传
2020-09-16 上传
2022-06-27 上传
2021-09-07 上传
2019-10-27 上传
她说那里是晒黑的
- 粉丝: 133
- 资源: 90
最新资源
- 前端协作项目:发布猜图游戏功能与待修复事项
- Spring框架REST服务开发实践指南
- ALU课设实现基础与高级运算功能
- 深入了解STK:C++音频信号处理综合工具套件
- 华中科技大学电信学院软件无线电实验资料汇总
- CGSN数据解析与集成验证工具集:Python和Shell脚本
- Java实现的远程视频会议系统开发教程
- Change-OEM: 用Java修改Windows OEM信息与Logo
- cmnd:文本到远程API的桥接平台开发
- 解决BIOS刷写错误28:PRR.exe的应用与效果
- 深度学习对抗攻击库:adversarial_robustness_toolbox 1.10.0
- Win7系统CP2102驱动下载与安装指南
- 深入理解Java中的函数式编程技巧
- GY-906 MLX90614ESF传感器模块温度采集应用资料
- Adversarial Robustness Toolbox 1.15.1 工具包安装教程
- GNU Radio的供应商中立SDR开发包:gr-sdr介绍