![](https://csdnimg.cn/release/download_crawler_static/88416080/bg1.jpg)
1.数据库三范式是什么?
1. 第一范式(1NF):字段具有原子性,不可再分。 (所有关系型数据库系
统都满足第一范式数据库表中的字段都是单一属性的,不可再分)
2. 第二范式(2NF)是在第一范式(1NF)的基础上建立起来的,即满足
第二范式(2NF)必须先满足第一范式(1NF)。要求数据库表中的每
个实例或行必须可以被惟一地区分。通常需要为表加上一个列,以存储
各个实例的惟一标识。这个惟一属性列被称为主关键字或主键。
3. 满足第三范式(3NF)必须先满足第二范式(2NF)。简而言之,第三
范式(3NF)要求一个数据库表中不包含已在其它表中已包含的非主关
键字信息。 >所以第三范式具有如下特征: >>1. 每一列只有一个
值 >>2. 每一行都能区分。 >>3. 每一个表都不包含其他表已经包含
的非主关键字信息。
2.有哪些数据库优化方面的经验?
1. 用 PreparedStatement, 一般来说比 Statement 性能高:一个 sql
发给服务器去执行,涉及步骤:语法检查、语义分析, 编译,缓存。
2. 有外键约束会影响插入和删除性能,如果程序能够保证数据的完整性,
那在设计数据库时就去掉外键。
3. 表中允许适当冗余,譬如,主题帖的回复数量和最后回复时间等
4. UNION ALL 要比 UNION 快很多,所以,如果可以确认合并的两个结
果集中不包含重复数据且不需要排序时的话,那么就使用 UNION
ALL。 >>UNION 和 UNION ALL 关键字都是将两个结果集合并为一
个,但这两者从使用和效率上来说都有所不同。 >1. 对重复结果的处
理: UNION 在进行表链接后会筛选掉重复的记录, Union All 不会去除
重复记录。 >2. 对排序的处理: Union 将会按照字段的顺序进行排
序; UNION ALL 只是简单的将两个结果合并后就返回。
3.请简述常用的索引有哪些种类?
1. 普通索引: 即针对数据库表创建索引
2. 唯一索引: 与普通索引类似,不同的就是: MySQL 数据库索引列的值
必须唯一,但允许有空值
3. 主键索引: 它是一种特殊的唯一索引,不允许有空值。一般是在建表的
时候同时创建主键索引
4. 组合索引: 为了进一步榨取 MySQL 的效率,就要考虑建立组合索引。
即将数据库表中的多个字段联合起来作为一个组合索引。
4.以及在 mysql 数据库中索引的工作机制是什么?
数据库索引,是数据库管理系统中一个排序的数据结构,以协助快速查询、更
新数据库表中数据。索引的实现通常使用 B 树及其变种 B+树
5.MySQL 的基础操作命令:
1. MySQL 是否处于运行状态:Debian 上运行命令 service mysql
status,在 RedHat 上运行命令 service mysqld status
2. 开启或停止 MySQL 服务 :运行命令 service mysqld start 开启服
务;运行命令 service mysqld stop 停止服务
3. Shell 登入 MySQL: 运行命令 mysql -u root -p
4. 列出所有数据库:运行命令 show databases;
5. 切换到某个数据库并在上面工作:运行命令 use databasename;
进入