互联网行业一直以来被誉为“高薪领域”,尤其是大厂的薪资福利更是引领行业标准。
最近脉脉整理了《大厂薪资地图——研发岗》,分析互联网大厂的职级体系及薪资范围。
我们来看看,了解一下当前市场行情:
可以看到大致工作 5 年,在大厂年收入就高达 50w 以上!
看完后,不知道各位想不想进大厂呢?
....
话不多说,开始今天面试题!
MySQL 的索引类型有哪些?
回答重点
从
数据结构
角度来看,MySQL 索引可以分为以下几类:
从
常见的基于 InnoDB B+ 树索引角度来看
,可以分为:
-
-
非聚簇索引(Non-clustered Index)
从
索引性质
的角度来看,可以分为:
扩展知识
进一步分析基于数据结构的索引分类
-
B+树索引
:通过树形结构存储数据,适用于范围查询(如
BETWEEN
)和精确查询(如
=
),支持有序数据的快速查找、排序和聚合操作。是 MySQL 默认的索引类型,常用于
InnoDB
和
MyISAM
引擎。
-
哈希索引
:基于哈希表的结构,适用于等值查询(如
=
),查询速度非常快,但不支持范围查询(如
>
、
<
)。哈希索引不存储数据的顺序,常用于
Memory
引擎。
-
倒排索引(Full-Text)
:用于全文搜索,将全文分词,通过存储词与文档的映射,支持模糊匹配和关键字搜索。特别适合用于大文本字段,如
TEXT
类型的列,用于查找包含特定词语的记录。
-
R-树索引
:专为多维空间数据(如地理坐标)设计,适用于空间查询(例如,计算地理位置的最近距离、区域查询等)。常用于存储和查询地理信息系统(GIS)中的空间数据。
进一步分析基于 InnoDB B+ 树索引分类
-
聚簇索引
:InnoDB 中主键索引就是聚簇索引。它基于主键排序存储。之所以叫
聚簇
索引是因为索引的
叶子节点存储完整数据行数据
。
-
非聚簇索引
:指的是 InnoDB 中非主键索引的索引,之所以称之为非聚簇是因为这个索引的叶子节点仅保存索引字段和主键的值。如果要查询完整的数据行中的数据,需要再从聚簇索引即主键索引中通过主键查询,一个表可以有多个非聚簇索引。
进一步分析基于索引性质的分类
-
-
主键索引
:表中的每一行数据都有唯一的主键。每个表只能有一个主键索引,且主键值不能为
NULL
。InnoDB 中主键索引是聚簇索引结构实现的。
-
联合索引
:由多个列组成的索引,适用于多列的查询条件,能够提高包含多个条件的查询的性能。联合索引中的列是按照指定顺序排列的。
-
唯一索引
:保证索引列中的值是唯一的,可以有效防止重复数据的插入。唯一索引允许
NULL
值,但一个列中可以有多个
NULL
。
-
全文索引
:用于全文搜索,支持对长文本字段(如
TEXT
类型)进行关键字查找,支持自然语言处理、模糊匹配等操作。适用于需要对文本内容进行复杂搜索的场景。
-
空间索引
:用于空间数据(如地图上的经纬度坐标等)查询。通常使用 R-树结构,适合多维数据的查询,如区域查询和最近距离查询,主要用于
MyISAM
和
InnoDB
存储引擎中的地理信息数据。
再来推荐下
我们的面试刷题网站和小程序:面试鸭!
咱们面试鸭立志成为
一款题库全面、持续更新、题解优质的刷题神器
,主要目的就是为了彻底解决所有你能想到的八股文学习痛点!
我们精选了近两年的高频面试真题,
已经
有 9000 多道面试题
目啦,
由大厂资深面试官手写答案,押题命中率超高!
不仅有传统八股文,场景题、项目题、系统设计题等等应有尽有,还在不断更新中!
现在邀请好友注册并成为会员,还可获得最高 50% 的分佣🧧!详情见面试鸭拉新邀请有赏规则(网页版面试鸭点击头像查看)