【搞定MySQL数据库】第6篇:索引的概述

本文详细介绍了常见的索引模型,包括哈希表、有序数组、二叉搜索树和多叉树,并重点讲解了InnoDB存储引擎的索引模型,特别是其B+树索引。此外,还探讨了索引维护、覆盖索引、最左前缀原则和索引下推等概念,旨在提高数据库查询效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本文为本人学习极客时间《MySQL实战45讲》的学习笔记。

原文链接:https://time.geekbang.org/column/article/69236

                  https://time.geekbang.org/column/article/69636

 可以阅读另外一篇文章,对索引底层的数据结构:B+树和B-树有个更深的理解:MySQL索引实现原理

本文目录:

1、常见的索引模型

1.1 哈希表

1.2、有序数组

1.3、二叉搜索树

1.4、多叉树

2、InnoDB 的索引模型

3、索引维护

4、覆盖索引

5、最左前缀原则

6、索引下推


索引的出现是为了提高数据的查询效率,就像书的目录一样。一本500页的书,如果你想快速找到其中的某一个知识点,再不济借助目录的情况下,那我估计你可得找一会儿。同样,对于数据库的表而言,索引其实就是它的“目录”。

1、常见的索引模型

索引的出现是为了提高查询效率,但是实现索引的方式却有很多种,所以这里引入索引模型的概念。可以用于提高读写效率的数据结构很多,这里现列举三种常见、简单的数据结构:哈希表、有序数组和二叉搜索树。

1.1 哈希表

哈希表是一种以键 - 值(key-value)存储数据的结构,我们只需要输入待查找的值 key,就可以找到其对应的值即 value。哈希的思路很简单,把值放到数组里,用一个哈希函数把 key 换算成一个确定的位置,然后把 value 放在数组的这个位置。

不可避免地,多个 key 值经过哈希函数的换算,会出现同一个值得情况,即哈希冲突。处理这种情况得一种办法就是拉出一个链表。

哈希表示意图

所以,哈希表这种结构适用于做等值查询的场景,比如:Memcached 及其他一些 NoSQL 引擎。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值