MySQL索引面试题面经汇总

一、索引
1. MySQL如何实现的索引?
三种:

B+树索引:主要,重点
hash索引:配合b+树索引使用,没法手动创建
全文索引:对于整个数据做全文的摘要索引
2. innodb和Myisam索引的区别?
innodb索引本身就在数据中,也就是说数据文件和索引文件在同一个
innodb的辅助索引data域相应记录主键的值而不是地址
3. 一个表中如果没有创建索引,会有b+树吗
答:如果建表的时候指定了主键,则会有聚簇索引,如果表没有创建主键那么在表的内部也会有一个隐式的主键,这么做的目的是为了更好的帮你管理,所以也是有的

4. 说一下b+树索引的实现原理
在b+树中,每一个页作为一个节点,而页的存储大小是固定的,在innodb中,页的默认大小是16kb,而在b+树中,非叶子节点是不存储数据的,只存储键值(key),因为页的大小是固定的,如果不存储数据,就可以存储更多的key,那么树的阶就会变大,树就会变的矮而盘,树的深度就会变少,这样查询的时候对硬盘的io次数就会变少,查询效率也就会变快

5. 聚簇索引和非聚簇索引有什么区别
在存储原理上,两者都是用b+数实现的,不过非聚簇索引多了一个回表的操作,也就是在根节点存储的不是行数据,而是主键的值,等查询到主键的值还需要再对主键的b+数进行查找,才能最终返回数据。
 

  • 8
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值