10道经典MySQL面试题 - 极悦
首页 课程 师资 教程 报名

10道经典MySQL面试题

  • 2021-01-27 17:33:57
  • 1215次 极悦

 

MySQL作为目前最流行的关系型数据库管理系统之一,往往是我们学习数据库的首选。无论是在大学的专门课程还是在相关培训机构的培训课程,MySQL都是非常重要的内容。我们在求职面试的过程中,也会遇到各种各样的MySQL面试题,本文我们为大家介绍10道经典MySQL面试题,为大家排忧解难。

 

1.索引的基本原理

索引用来快速地寻找那些具有特定值的记录。如果没有索引,一般来说执行查询时遍历整张表。

索引的原理很简单,就是把无序的数据变成有序的查询。

1)把创建了索引的列的内容进行排序

2)对排序结果生成倒排表

3)在倒排表内容上拼上数据地址链

4)在查询的时候,先拿到倒排表内容,再取出数据地址链,从而拿到具体数据

 

2.事务的基本特性有哪些?

事务基本特性ACID分别是:

原子性:指的是一个事务中的操作要么全部成功,要么全部失败。

一致性:指的是数据库总是从一个一致性的状态转换到另外一个一致性的状态。比如A转账给B100块钱,假设中间sql执行过程中系统崩溃A也不会损失100块,因为事务没有提交,修改也就不会保存到数据库。

隔离性:指的是一个事务的修改在最终提交前,对其他事务是不可见的。

持久性:指的是一旦事务提交,所做的修改就会永久保存到数据库中。

 

3.MySQL由哪些部分组成, 各自有什么功能?

1、Server

1)连接器: 管理连接, 权限验证

2)分析器: 词法分析, 语法分析

3)优化器: 执行计划生成, 索引的选择

4)执行器: 操作存储引擎, 返回执行结果

2、存储引擎: 存储数据, 提供读写接口

 

4.唯一索引比普通索引快吗, 为什么?

唯一索引不一定比普通索引快, 还可能慢。

查询时, 在未使用limit 1的情况下, 在匹配到一条数据后, 唯一索引即返回, 普通索引会继续匹配下一条数据, 发现不匹配后返回. 如此看来唯一索引少了一次匹配, 但实际上这个消耗微乎其微.

更新时, 这个情况就比较复杂了. 普通索引将记录放到change buffer中语句就执行完毕了. 而对唯一索引而言, 它必须要校验唯一性, 因此, 必须将数据页读入内存确定没有冲突, 然后才能继续操作. 对于写多读少的情况, 普通索引利用change buffer有效减少了对磁盘的访问次数, 因此普通索引性能要高于唯一索引.

 

5.MyISAM和InnoDB的区别有哪些

1)InnoDB支持事务, MyISAM不支持。

2)InnoDB支持行级锁, MyISAM支持表级锁。

3)InnoDB支持多版本并发控制(MVVC), MyISAM不支持。

4)InnoDB支持外键, MyISAM不支持。

5)MyISAM支持全文索引, InnoDB部分版本不支持(但可以使用Sphinx插件)

 

6.数据库的三大范式

第一范式: 属性不可再分.

第二范式: 在一范式的基础上, 要求数据库表中的每个实例或行必须可以被惟一地区分. 通常需要为表加上一个列, 以存储各个实例的惟一标识. 这个惟一属性列被称为主关键字或主键.

第三范式: 在二范式的基础上, 要求一个数据库表中不包含已在其它表中已包含的非主关键字信息. 所以第三范式具有如下特征:1). 每一列只有一个值. 2). 每一行都能区分. 3). 每一个表都不包含其他表已经包含的非主关键字信息.

 

7.视图有哪些特点?

1)视图的列可以来自不同的表,是表的抽象和在逻辑意义上建立的新关系。

2)视图是由基本表(实表)产生的表(虚表)。

3)视图的建立和删除不影响基本表。

4)对视图内容的更新(添加,删除和修改)直接影响基本表。

5)当视图来自多个基本表时,不允许添加和删除数据。

 

8.SQL 约束有哪几种?

NOT NULL: 用于控制字段的内容一定不能为空(NULL)。

UNIQUE: 控件字段内容不能重复,一个表允许有多个 Unique 约束。

PRIMARY KEY: 也是用于控件字段内容不能重复,但它在一个表只允许出现一个。

FOREIGN KEY: 用于预防破坏表之间连接的动作,也能防止非法数据插入外键列,因为它必须是它指向的那个表中的值之一。

CHECK: 用于控制字段的值范围。

 

9.六种关联查询

交叉连接(CROSS JOIN)

内连接(INNER JOIN)

外连接(LEFT JOIN/RIGHT JOIN)

联合查询(UNION与UNION ALL)

全连接(FULL JOIN)

交叉连接(CROSS JOIN)

 

10.超键、候选键、主键、外键分别是什么?

超键:在关系中能唯一标识元组的属性集称为关系模式的超键。一个属性可以为作为一个超键,多个属性组合在一起也可以作为一个超键。超键包含候选键和主键。

候选键:是最小超键,即没有冗余元素的超键。

主键:数据库表中对储存数据对象予以唯一和完整标识的数据列或属性的组合。一个数据列只能有一个主键,且主键的取值不能缺失,即不能为空值(Null)。

外键:在一个表中存在的另一个表的主键称此表的外键。

 

以上就是为大家介绍的10道经典MySQL面试题,希望能够在我们求职面试的过程中起到小小的帮助,当然主要还是靠我们自己的知识积累。在本站的MySQL教程里面,有着MySQL知识体系的全面讲解课程,帮助我们快速掌握MySQL的整个知识体系,无惧任何面试的挑战!

 

 

选你想看

你适合学Java吗?4大专业测评方法

代码逻辑 吸收能力 技术学习能力 综合素质

先测评确定适合在学习

在线申请免费测试名额
价值1998元实验班免费学
姓名
手机
提交