MySQL面试常见题目(八)

原文地址:MySQL面试常见题目(八)

1、数据库三大范式?

  1. 第一范式:每个列都不可再拆分。

  2. 第二范式:在第一范式基础上,非主键列完全依赖于主键,而不能依赖于主键的一部分。

  3. 第三范式:在第二范式基础上,非主键列只依赖于主键,不依赖于其它非主键。

2、MyISAM索引和InnoDB索引的区别?

  1. InnoDB索引是聚簇索引,MyISAM索引是非聚簇索引。

  2. InnoDB主键索引的叶子节点存储着行数据,因此主键索引非常高效。

  3. MyISAM主键索引的叶子节点存储的是行数据地址,需寻址一次才能得到数据。

  4. InnoDB非主键索引叶子节点存储着主键和其它带索引的列数据,也正是如此,查询时可做到覆盖索引,效率很高。

3、什么是索引?

索引是一种特殊的文件(InnoDB数据表上的索引是表空间的一个组成部分),包含着对数据表里所有记录的引用指针。

索引是一种数据结构,数据库索引是数据库管理系统中一个排序的数据结构,可协助快速查询、更新数据库表中数据,通常使用B树及其变种B+树。

索引可看作目录,为方便查找书中内容,通过对书中内容建立索引形成目录,索引是文件,需占用物理空间。

4、索引优缺点?

索引的优点:

  1. 可加快数据检索速度。

  2. 通过使用索引,可在查询过程中使用优化隐藏器,提高系统性能。

索引的缺点:

  1. 时间:创建和维护索引需消耗时间,当对表中数据进行CURD时,索引也需动态维护,会降低CURD执行效率。

  2. 空间:会占用物理空间。

5、char和varchar的区别?

  1. char和varchar在存储和检索方面不同。

  2. char列长度固定为创建表时声明的长度,范围值是1~255。

  3. 当char被存储时,如不满足长度则使用空格填充,检索char时需删除尾随空格。

6、主键和候选键的区别?

表格的每一行都有主键唯一标识,一个表只有一个主键,主键也是候选键,按照惯例,候选键可被指定为主键,且可用于任何外键引用。

7、如何在Unix和MySQL时间戳之间进行转换?

  1. UNIX_TIMESTAMP是从MySQL时间戳转为Unix时间戳的指令。

  2. FORM_UNIXTIME是从Unix时间戳转为MySQL时间戳的指令。

至此,本次分享就结束了,后期会慢慢补充的。

以上仅为个人观点,不一定准确,能帮到各位那是最好的。

好啦,到这里本文就结束了,喜欢的话就来个三连击吧。

扫码关注公众号,获取更多优质内容。

 

Guess you like

Origin blog.csdn.net/luyaran/article/details/121241424