大数据开发面试:索引的底层实现原理是什么?

索引存储在内存中,为服务器存储引擎为了快速找到记录的一种数据结构。索引的主要作用是加快数据查找速度,提高数据库的性能。

索引的分类

(1) 普通索引:最基本的索引,它没有任何限制。

(2) 唯一索引:与普通索引类似,不同的就是索引列的值必须唯一,但允许有空值。如果是组合索引,则列值的组合必须唯一。

(3) 主键索引:它是一种特殊的唯一索引,用于唯一标识数据表中的某一条记录,不允许有空值,一般用 primary key 来约束。

(4) 联合索引(又叫复合索引):多个字段上建立的索引,能够加速复合查询条件的检索。

(5) 全文索引:老版本 MySQL 自带的全文索引只能用于数据库引擎为 MyISAM 的数据表,新版本 MySQL 5.6 的 InnoDB 支持全文索引。默认 MySQL 不支持中文全文检索,可以通过扩展 MySQL,添加中文全文检索或为中文内容表提供一个对应的英文索引表的方式来支持中文。

1. 索引结构

索引是在Mysql的存储引擎(InnoDB,MyISAM)层中实现的, 而不是在服务层实现的. 所以每种存储引擎的索引都不一定完全相同, 也不是所有的存储引擎都支持所有的索引类型的, Mysql目前提供了以下4种索引:

B+Tree 索引: 最常见的索引类型, 大部分索引都支持B+树索引.

Hash 索引: 只有Memory引擎支持, 使用场景简单.

R-Tree索引(空间索引): 空间索引是MyISAM引擎的一个特殊索引类型, 主要地理空间数据, 使用也很少.

S-Full-text(全文索引): 全文索引也是MyISAM的一个特殊索引类型, 主要用于全文索引, InnoDB从Mysql5.6版本开始支持全文索引.

大数据开发面试:索引的底层实现原理是什么?
2. BTree结构

B+Tree是在BTree基础上进行演变的, 所以我们先来看看BTree, BTree又叫多路平衡搜索树, 一颗m叉BTree特性如下:

(1) 树中每个节点最多包含m个孩子.

(2) 除根节点与叶子节点外, 每个节点至少有[ceil(m/2)] 个孩子(ceil函数指向上取整).

(3) 若根节点不是叶子节点, 则至少有两个孩子.

(4) 每个非叶子节点由n个Key和n+1个指针组成, 其中 [ceil(m/2) -1 ] <= n <= m-1.

以5叉BTree为例, key的数量: 公式推导 [ceil(m/2) -1 ] <= n <= m-1.

所以 2 <= n <= 4, 中间节点分裂父节点,两边节点分裂.

大数据开发面试:索引的底层实现原理是什么?
3.B+Tree 结构

B+Tree为BTree的变种, B+Tree与BTree的区别:

1.B+Tree的叶子节点保存所有的key信息, 依key大小顺序排列.

2.B+Tree叶子节点元素维护了一个单项链表.

所有的非叶子节点都可以看作是key的索引部分。

大数据开发面试:索引的底层实现原理是什么?

由于B+Tree只有叶子节点保存key信息, 查询任何key都要从root走的叶子. 所以B+Tree查询效率更稳定.

Mysql中的B+Tree

MySql索引数据结构对经典的B+Tree进行了优化, 在原B+Tree的基础上, 增加了一个指向相邻叶子节点的链表指针, 就形成了带有顺序指针的B+Tree, 提高区间访问的性能.

MySql中的B+Tree索引结构示意图:

大数据开发面试:索引的底层实现原理是什么?

免责声明:文章内容来自互联网,本站仅作为分享,不对其真实性负责,如有侵权等情况,请与本站联系删除。
转载请注明出处:大数据开发面试:索引的底层实现原理是什么? https://www.dachanpin.com/a/cyfx/10809.html

(0)
上一篇 2023-05-12 02:20:26
下一篇 2023-05-12 02:21:25

相关推荐

  • 午评:创业板跌2.09% 半导体领跌

    新浪声明:新浪网登载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述。文章内容仅供参考,不构成投资建议。投资者据此操作,风险自担。 责任编辑:马秋菊 SF186   证券时报网   广发证券认为,虽有一定屏障,但外资流出仍造成中国股债资产遭受外资减持,汇率亦承受贬值压力。本周MLF和LPR均未下调或有汇率考量,但目前A股整体流动性问题不大,全球流…

    2023-05-11
    76
  • 创业挡在前面的难题怎么破真抓真干破难题 捷报频传再出发市科技

    “到2025年,创新型经济蓬勃发展,科技创新综合实力和竞争力不断增强;到2035年,富有活力的区域创新系统基本形成,创新国际化程度显著提升,涌现一批世界级科研机构、创新平台和创新企业……建成国际化创新型城市和粤港澳大湾区创新高地。”翻开《珠海市关于进一步促进科技创新的意见》,一幅科技创新发展的新图景缓缓展开。 作为我市科技创新工作纲领性文件,《意见》首次明晰…

    创业分享 2023-05-12
    61
  • 点识科技:电商创业如何成功?主动学习必不可少

      【天极网IT新闻频道】你比昨天更博学了吗?   看过奇葩说辩论节目的你,一定不会对这句话感到陌生。它强调的是知识的力量,更是学习的力量。这句话出自杨奇函,一个把学习视为终生信仰的男子。他走在街上时会观察两边的牌匾文字,他看到同学社交软件发的照片背景有古诗时,会拿小本子摘抄下来……所以,杨奇函中高考语文满分作文、大学十几篇阅读量10…

    创业分享 2023-05-12
    105
  • 如何才能创业成功:确信你有激情和坚忍

    】 责任编辑:殷莹莹     【慧聪食品工业网】如何才能创业成功是所有创业者都关心的话题,最近美国Likeable的CEO,DaveKerpen分享了他和InfographicWorld的28岁创始人JustinBeegel的对话。InfographicWorld在2009年创建,经历了年收入3位数的增长。这里是Jus…

    2023-05-19
    64
  • 构建创新创业生态系统 打造双创升级版

    创新是引领发展的第一动力。作为中国西部的创新创业热土、西部首个国家自主创新示范区,成都高新区全力打造以“创新主体最活跃、创业资源最富集、创造能力最持久”为鲜明特色,以“国际化、专业化、众创化、集群化”为主要方向,以“大企业大集团引领、校地军民协同、国际合作开放、街道社区基层创新创业”为重点内容,以“体制改革驱动机制创新、机制创新驱动成果转化、成果转化驱动产业…

    创业分享 2023-05-15
    114

发表回复

登录后才能评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信