专栏首页用户画像深入理解 Mysql 索引底层原理

深入理解 Mysql 索引底层原理

一步一步推导出 Mysql 索引的底层数据结构。

Mysql 作为互联网中非常热门的数据库,其底层的存储引擎和数据检索引擎的设计非常重要,尤其是 Mysql 数据的存储形式以及索引的设计,决定了 Mysql 整体的数据检索性能。

我们知道,索引的作用是做数据的快速检索,而快速检索的实现的本质是数据结构。通过不同数据结构的选择,实现各种数据快速检索。在数据库中,高效的查找算法是非常重要的,因为数据库中存储了大量数据,一个高效的索引能节省巨大的时间。比如下面这个数据表,如果 Mysql 没有实现索引算法,那么查找 id=7 这个数据,那么只能采取暴力顺序遍历查找,找到 id=7 这个数据需要比较 7 次,如果这个表存储的是 1000W 个数据,查找 id=1000W 这个数据那就要比较 1000W 次,这种速度是不能接受的。

一、Mysql 索引底层数据结构选型

  1. 1 ". "哈希表(Hash)

哈希表是做数据快速检索的有效利器。

哈希算法:也叫散列算法,就是把任意值(key)通过哈希函数变换为固定长度的 key 地址,通过这个地址进行具体数据的数据结构。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 程序员在家撸码的十大姿势

    大家好,我是帅气的算法工程师,好久不见~在家办公已经一周多了,不知各位感觉如何?曾经的你以为在家办公爽歪歪,今天的你迫不及待想回公司上班,电脑屏幕太小,椅子不舒...

    week
  • 特征工程

    特征工程是用数学转换的方法将原始输入数据转换为用于机器学习模型的新特征。特征工程提高了机器学习模型的准确度和计算效率,体现在以下五个方面

    week
  • 7.3.1 交换排序之冒泡排序

    冒泡排序算法的基本思想是:假设待排序表长为n,从后往前(或从前往后)两两比较相邻元素的值。若为逆序(即A[i-1]>A[i]),则交换它们,直到序列比较完。我们...

    week
  • 【职业】数据科学家的自我修炼

    未来是一个大数据的时代,从企业实践来看,建立大数据的存储和数据管道首先需要技术,但是怎么通过数据去做分析?这就需要数据建模能力。怎么确定建模或者分析的方向?这就...

    小莹莹
  • L1两数之和

    如果是想励志从1刷到999+,我相信大多数人会半途而废。我也尝试过连续刷,不会做就跳着做。

    我脱下短袖
  • 从头到尾解析Hash 表算法

    问题描述 百度面试题: 搜索引擎会通过日志文件把用户每次检索使用的所有检索串都记录下来,每个查询串的长度为1-255字节。 假设目前有一千万个记...

    后端技术探索
  • 回顾2016深度学习十大框架

    我喜欢参加在西班牙马德里举办的机器学习见面会,也算是西班牙马德里TensorFlow小组和机器学习(Machine Learning)小组的常客,在自动无人驾驶...

    AI科技大本营
  • iOS开发中CornerStone的使用

    版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010105969/article/details/...

    用户1451823
  • 程序员需要了解的硬核知识之控制硬件

    我们作为程序员一般很少直接操控硬件,我们一般通过 C、Java 等高级语言编写的程序起到间接控制硬件的作用。所以大家很少直接接触到硬件的指令,硬件的控制是由 W...

    cxuan
  • 机器学习--多标签softmax + cross-entropy交叉熵损失函数详解及反向传播中的梯度求导

    https://blog.csdn.net/oBrightLamp/article/details/84069835

    用户1148525

扫码关注云+社区

领取腾讯云代金券