推广 热搜: csgo  vue  angelababy  2023  gps  新车  htc  落地  app  p2p 

史上最全的MySQL索引数据结构汇总

   2023-06-03 网络整理佚名1360
核心提示:深入解析MySQL索引数据结构索引就是排好序的数据结构,可以帮助我们快速的查找到数据,下面这篇文章主要给大家介绍了关于MySQL索引数据结构的相关资料,需要的朋友可以参考下索引数据结构到此这篇关于MySQL索引数据结构的文章就介绍到这了,更多相关MySQL索引数据结构内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

深入剖析MySQL索引数据结构

更新时间:2021-10-13 15:28:52 作者:老郑

什么是索引? 索引是一种有序的数据结构,可以帮助我们快速查找数据。 下面这篇文章主要介绍MySQL索引数据结构的相关信息。 需要的朋友可以参考以下

目录索引参考

概述

索引是一种对数据库表中一个或多个列的值进行排序的结构,利用索引可以快速访问数据库表中的特定信息。

索引数据结构

二叉树

二叉树(tree)是指节点度数不大于2的有序树,是最简单也是最重要的树。二叉树的递归定义是:二叉树是一棵空树,或者说非由一个根节点和两个不相交的左右子树组成的空树,称为根; 左子树和右子树也是二叉树

对于数组{1,2,3,4,5}数据结构将变成一个链表

特征:

二叉树.png

红黑树

红黑树是一种特殊类型的二叉树,是计算机科学中用于组织数据块(例如数字)的一种结构。 如果二叉搜索树是红黑树,则它的任何子树都必须是红黑树。

红黑树是平衡二叉搜索树的变体。 它的左右子树的高度差可能大于1,所以红黑树不是严格意义上的平衡二叉树(AVL),但是平衡它的代价比较低。 低,其平均统计性能强于AVL。

由于每棵红黑树都是一棵二叉排序树,所以在搜索红黑树时,可以使用普通二叉排序树的搜索算法,搜索过程中不需要颜色信息。

红黑树数据结构如下:

红黑树数据结构.png

特征:

B树

B树数据结构.png

B+树

B+树数据结构.png

特征关键字:节点内有序、叶节点指针链接、非叶节点存储索引(冗余)

查询mysql索引的数据页大小:

mysql> show global status like 'Innodb_page_size';
+------------------+-------+
| Variable_name    | Value |
+------------------+-------+
| Innodb_page_size | 16384 |
+------------------+-------+

为什么要设置16kb?

散列

哈希数据结构.png

指数

索引具体化(聚合)

表数据文件本身是B+Tree组织的索引结构文件

聚簇索引——叶节点包含完整的数据记录

为什么一张表一定要有主键,推荐使用整型自增主键?

为什么非主键索引结构的叶子节点存放的是主键值?

主键索引示意图:

索引实现.png

非主键索引示意图

如果查询是通过name=Alice来查询:

使用非主键索引进行查询,查询后得到信息(Alice, 18)。 其实这里也是非聚集索引再查询回表,然后通过主键查询来做回表查询。

两个数据文件:

.frm主要存放表结构信息

.ibd主要存放索引和数据

索引文件(非集群)

索引文件和数据文件是分开的(非聚集)

存储引擎索引.png

三个数据文件:

.frm 数据结构文件

.myd文件主要是存放数据

.myi文件主要存放索引信息

聚簇索引和非聚簇索引

特征:

聚合/不聚合主要是索引文件是否和数据文件在一起。

在查询效率上,聚簇索引不会更高效地跨文件查询。

联合/复合索引

多个字段组织成一个公共索引

复合索引.png

为什么要这样使用最左前缀原则呢?

索引数据已排序,如果跳过字段则无法使用。

例子:

where name = 'Jeff' and age = 22              -- 命中索引
where age = 30  and postatin='manager'  -- 不命中索引
where postation = 'dev'                            -- 不命中索引

参考

百度百科

总结

关于MySQL索引数据结构的这篇文章到此结束。 更多关于MySQL索引数据结构的内容,请搜索脚本之家以往文章或继续浏览以下相关文章。 希望大家以后多多支持脚本之家!

 
反对 0举报 0 收藏 0 打赏 0评论 0
 
更多>同类资讯
推荐图文
推荐资讯
点击排行
网站首页  |  关于我们  |  联系方式  |  使用协议  |  版权隐私  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报
Powered By DESTOON