JAVA面试专题:数据库设计与优化
需积分: 1 120 浏览量
更新于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 上传
2023-03-22 上传
2023-05-17 上传
2023-12-19 上传
2023-06-28 上传
2023-06-11 上传
2023-08-13 上传
2024-06-19 上传
![](https://profile-avatar.csdnimg.cn/76a1846df9aa48e58c58c42c89e5b4d6_sm137726794.jpg!1)
她说那里是晒黑的
- 粉丝: 128
- 资源: 90
最新资源
- Hadoop生态系统与MapReduce详解
- MDS系列三相整流桥模块技术规格与特性
- MFC编程:指针与句柄获取全面解析
- LM06:多模4G高速数据模块,支持GSM至TD-LTE
- 使用Gradle与Nexus构建私有仓库
- JAVA编程规范指南:命名规则与文件样式
- EMC VNX5500 存储系统日常维护指南
- 大数据驱动的互联网用户体验深度管理策略
- 改进型Booth算法:32位浮点阵列乘法器的高速设计与算法比较
- H3CNE网络认证重点知识整理
- Linux环境下MongoDB的详细安装教程
- 压缩文法的等价变换与多余规则删除
- BRMS入门指南:JBOSS安装与基础操作详解
- Win7环境下Android开发环境配置全攻略
- SHT10 C语言程序与LCD1602显示实例及精度校准
- 反垃圾邮件技术:现状与前景