阿里面试中关于索引有关的问题以及知识点

VIP免费
2024-12-10 1 0 516.74KB 8 页 5.9玖币
侵权投诉
阿里面试中关于索引有关的问题以及知识点
索引概念、索引模型
我们是怎么聊到索引的呢,是因为我提到我们的业务量比较大,每天大概有几百万的新数
据生成,于是有了以下对话:
面试官:你们每天这么大的数据量,都是保存在关系型数据库中吗?
我:是的,我们线上使用的是 MySQL 数据库
面试官:每天几百万数据,一个月就是几千万了,那你们有没有对于查询做一些优化呢?
我:我们在数据库中创建了一些索引(我现在非常后悔我当时说了这句话)
这里可以看到,阿里的面试官并不会像有一些公司一样拿着题库一道一道的问,而是会根
据面试者做过的事情以及面试过程中的一些内容进行展开。
面试官:那你能说说什么是索引吗?
我:(这道题肯定难不住我啊)索引其实是一种数据结构,能够帮助我们快速的检索数据
库中的数据。
面试官:那么索引具体采用的哪种数据结构呢
我:(这道题我也背过)常见MySQL 主要有两种结构:Hash 索引B+ Tree 索引,
我们使用的是 InnoDB 引擎,默认的是 B+树。
这里我耍了一个小心机,特意说了一下索引和存储引擎有关。希望面试官可以问我一些关
于存储引擎的问题。
面试官:既然你提到 InnoDB 使用的 B+ Tree 的索引模型,那么你知道为什么采用 B+
吗?这和 Hash 索引比较起来有什么优缺点吗?
我:(突然觉得这道题有点难,但是我还是凭借着自己的知识储备简单的回答上一些)因
Hash 索引底层是哈希表,哈希表是一种以 key-value 存储数据的结构,所以多个数据
在存储关系上是完全没有任何顺序关系的,所以,对于区间查询是无法直接通过索引查询
的,就需要全表扫描。所以,哈希索引只适用于等值查询的场景。而 B+ Tree 是一种多路
平衡查询树,所以他的节点是天然有序的(左子节点小于父节点、父节点小于右子节
点),所以对于范围查询的时候不需要做全表扫描。
面试官:除了上面这个范围查询的,你还能说出其他的一些区别吗?
我:(这个题我回答的不好,事后百度了一下
科普时间:B+ Tree 引和 Hash 索引区别 哈希索引适合等值查询,但是不无法进行范
查询 哈希索引没办法利用索引完成排序 哈希索引不支持多列联合索引的最左匹配规则
果有大量重复键值得情况下,哈希索引的效率会很低,因为存在哈希碰撞问
聚簇索引、覆盖索引
面试官:刚刚我们聊到 B+ Tree ,那你知道 B+ Tree 的叶子节点都可以存哪些东西吗?
我:InnoDB B+ Tree 可能存储的是整行数据,也有可能是主键的值。
摘要:

阿里面试中关于索引有关的问题以及知识点索引概念、索引模型我们是怎么聊到索引的呢,是因为我提到我们的业务量比较大,每天大概有几百万的新数据生成,于是有了以下对话:面试官:你们每天这么大的数据量,都是保存在关系型数据库中吗?我:是的,我们线上使用的是MySQL数据库面试官:每天几百万数据,一个月就是几千万了,那你们有没有对于查询做一些优化呢?我:我们在数据库中创建了一些索引(我现在非常后悔我当时说了这句话)。这里可以看到,阿里的面试官并不会像有一些公司一样拿着题库一道一道的问,而是会根据面试者做过的事情以及面试过程中的一些内容进行展开。面试官:那你能说说什么是索引吗?我:(这道题肯定难不住我啊)索...

展开>> 收起<<
阿里面试中关于索引有关的问题以及知识点.pdf

共8页,预览2页

还剩页未读, 继续阅读

声明:本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。玖贝云文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知玖贝云文库,我们立即给予删除!
分类:计算机 价格:5.9玖币 属性:8 页 大小:516.74KB 格式:PDF 时间:2024-12-10

开通VIP享超值会员特权

  • 多端同步记录
  • 高速下载文档
  • 免费文档工具
  • 分享文档赚钱
  • 每日登录抽奖
  • 优质衍生服务
/ 8
客服
关注