MySQL索引


索引:类似书的目录,方便定位想要查找的内容。是帮助数据库更高效的查询所排好序的数据结构。

索引的数据结构

二叉树:

最基本的树,有一个根节点,左边的节点永远小于右边的节点
在这里插入图片描述

红黑树:

也叫二叉平衡树,二叉树的变种,节点分为黑色和红色,根节点和叶子节点为黑色,每个红色节点的两个子节点也是黑色,有连续的两个红色节点就做一次平衡。

在这里插入图片描述

B树

B树在红黑树基础上改造,把节点横向扩展,每个节点存放多个索引,索引不重复,非叶子节点存放指针,指向叶子节点,叶子节点没有指针。(data为内存地址)
在这里插入图片描述

B+树

B+树在B树的基础上改造,B树在每个节点存储了索引和数据的内存地址(上图中data),B+树只在最底层的叶子节点存放内存地址(所有的内存地址都存储在叶子节点,非叶子节点只做索引,有重复),所以B+树每个叶子节点可以存放的索引更多。
在这里插入图片描述

==MySQL中每个节点可以存储16KB,设索引(15,56,77)为bigint类型,每个索引在内存占8B空间,
索引间的指针(星星标记的位置)存放指向节点的内存地址,MySQL规定为6B,这样存储一个索引占14B,一个非叶子节点大概可以存储1140个索引,==叶子节点没有存放指针,存放的是索引所在行的所有数据合集(一行数据)假设为1KB,一个叶子节点可以存放16个索引,这样树高为3就可以存放1140114016个索引。

hash表

hash是对索引列做hash运算后,把散列值和内存地址存放在hash表中,只做一次hash运算就可以定位数据(hash只能做等于,无法做范围查找大于小于,用的少)

索引优化秘籍心法

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值