MySQL-如何实现的索引机制

一、MySQL大厂面试题概览

MySQL大厂面试题主要由以下五个部分组成:
1.MySQL索引

2.MySQL内部技术架构

3.MySQL事务

4.MySQL日志

5.知识

现在的面试馆呈现出一种刨根问底儿式的问法,更注重考察被面试者的知识深度了

面试的时候要会引导面试官问自己擅长的内容

二、MySQL如何实现的索引机制?

MySQL中索引分为三类:
1.B+树索引
InnoDB或者MyISAM存储引擎底层是B+树索引

2.Hash索引
使用的Hash索引的好处是快、准

B+树索引存储的是全量数据,Hash索引可以做一些辅助性的查询,从而能够快速的定位到指定数据

B+树索引和Hash索引是同时存在的,Hash索引是配合的B+树索引使用的,Hash索引无法手动创建,是系统自动创建出来的

3.全文索引
对所有的数据进行全文的摘要和索引

重点的是B+树索引,以及配合其使用的Hash索引

1.InnoDB索引与MyISAM索引实现的区别是什么?

两个关键点:
1.索引的位置不同
InnoDB索引存储的时候和数据存放在同一个文件里,数据是会存储在磁盘文件上面,索引建好之后就直接在该文件后面进行追加;MyISAM索引不一样,其是单独的一个文件

2.B+树叶子节点存储内容不一样
InnoDB索引的B+树叶子节点指向的是ID(聚簇索引存储的是数据本身,非聚簇索引存储的是ID,通过ID进行回表操作)MyISAM索引的B+树叶子节点指向的是指针(或者说是物理的地址)

InnoDB索引与MyISAM索引实现的共同点:
它们的底层实现都是B+InnoDB索引与MyISAM索引实现的不同点:
1.InnoDB的辅助索引(非主键索引/非聚簇索引)叶子节点的data域存储的是相应记录的主键的值而不是地址,聚簇索引的话存储的是具体的数据

2.InnoDB的数据本身就是主索引文件

3.MyISAM的索引和数据是分开存储的

在这里插入图片描述

2.一个表中如果没有创建索引,那么还会创建B+树吗?

如果创建表的时候指定了主键,那么将会把该主键的字段去创建聚簇索引,此时B+树就会被创建了
如果是没有主键,也会去创建聚簇索引,此时B+树存储的是隐式的ROWIDROWID只供MySQL内部使用,我们是无法使用的
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值