mysql面试题

文章介绍了数据库设计的三范式,强调了第一范式的重要性,以及第二和第三范式的作用。同时,讨论了数据库索引的概念,其主要通过B树结构提高查询效率,包括不同类型的索引如普通索引、唯一索引、主键索引和全文索引。还提到了MySQL中InnoDB和MyISAM存储引擎对自增ID处理的差异,以及char和varchar的区别和适用场景。
摘要由CSDN通过智能技术生成

今晚学习了6倒面试题目,很有收获,自己来总结一下下;

  1. 数据库三范式是什么?

答:数据库三范式就是建立表需要大家遵守的规则,按这个规则建立的表简洁,还有其他更高的级别,不过一般不用了;第1范式特别简单,也是必须要遵守的,就是每个属性字段具有原子性,是不能拆分的;

后面的范式是建立在前面范式基础上的,

第2范式,就是要根据主键字段确定一条记录,不能有非完全依赖关系;建立一列作为主键字段;

第3范式,是第2范式的子集,不能有依赖传递关系;

真实建立表的时候,第一范式必须要遵守,后面,两个看情况,因为要考虑表格查询效率,每个表字段太少了的话,查询信息需要联表查询,对查询不利;

另外满足第一范式的表,可能存在几个问题,数据冗余,插入异常,删除异常,更新异常,后面的两个范式就是来解决前面的问题的。这个问题是基本的问题,

  1. 数据库的索引原理是什么?或者说是工作机制。

因为在实际工作中,更多的是查询工作,所以逐序查询比较浪费时间,尤其是在数据量很大的时候,我们建立索引就是来提高查询效率,节省时间的;索引主要靠B树或者B+树来实现的;

  1. 索引的类型有哪些? 答:普通索引,其中一个字段作为索引,允许此列数据有重复;

唯一索引,此列数据不允许重复,实现方式是字段加unique;

主键索引,唯一且非空,实现方式是字段加Primary key;和唯一索引的区别是就不能为空;

全文索引,搜索引擎里用的比较多,数据库里用的较少,主要用来做分词及相关查询的;

联合索引,联合几个字段作为索引字段;

  1. 常见的基本操作有哪些?

连接,显示数据库有哪些,相当于文件夹,然后建立表,插入数据,后面就是查询用了

  1. id 主键自增的话,删除了几条记录,重启服务了,再插入记录,id号是如何变化的;

答:要看存储引擎是什么,innodb 的话,比如删除了16,17,不重启就是18,重启的话,再插入就是16了;myisam重启的话,还是18,会记录下之前的这个id

  1. char和varchar的区别?

char,定常的字符,表示字符的数量,最大是255,不够的时候会补充0.查询的时候会自动把末尾的空格截断的,这个模式是可以设置改变的哟;

varchar,变长的字符,表示字符数量,需要自己计算一下,每行的所有字段加起来一共65535字节,不能超过;

两者有什么优缺点呢?char浪费空间,频繁操作更行的时候用

varchar就是节约空间;

int 后面的数字表示的是显示宽度;

补充知识点:覆盖索引,查询的字段正好是索引字段。主键索引默认是聚集索引,对立的是普通索引,

mysql里吧B+树还是称为B树,因为是加了指针的。

如何看是否用了索引,加关键字explain 看possible key 和key 或者type 还有最后一个字段,索引下推。use index 好像就是覆盖索引,就是从这个字段这里看的;

明天继续刷面试题目,加油!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值