数据库索引

mysql体系架构

在这里插入图片描述

索引系统

在这里插入图片描述

数据存储系统

mysql用哈希表为什么不行?


在这里插入图片描述

mysql的数据结果是b+树的解释说明


在这里插入图片描述

  • 二分查找树的数据结构
    在这里插入图片描述
  • 二分查找树:树的子节点最多是两个,并且左子树小于根节点,右子树大于根节点
  • 如果我们的数据是有序的话,那么二分查找树就会成为一个链表
  • 所以衍生出了平衡二叉树
  • 平衡二叉树的数据结构

平衡二叉树的概念:
平衡树(Balance Tree,BT) 指的是,任意节点的子树的高度差都小于等于1。常见的符合平衡树的
有,B树(多路平衡搜索树)、AVL树(二叉平衡搜索树)等。平衡树可以完成集合的一系列操作,
时间复杂度和空间复杂度相对于“2-3树”要低,在完成集合的一系列操作中始终保持平衡,为大型数
据库的组织、索引提供了一条新的途径

  • 平衡二叉树图析:
    在这里插入图片描述

相对于二分查找树来说,树的高度小了很多,
平衡树的不足:
插入一个树的时候,需要比较,转换,消耗的时间会很长,适合查找情况多的部分,如果大部分业务时写操作的话,会效率很低。
因此衍生出了红黑树

  • 红黑树数据结构

红黑树的概念
性质1. 节点是红色或黑色。
性质2. 根节点是黑色。
性质3.所有叶子都是黑色。(叶子是NIL节点)
性质4. 每个红色节点的两个子节点都是黑色。(从每个叶子到根的所有路径上不能有两个连续的红色节点)
性质5… 从任一节点到其每个叶子的所有路径都包含相同数目的黑色节点。

  • 红黑树的图析
    在这里插入图片描述

红黑树的不足:
当数据量大的时候,树的深度会很深,查找效率会变差
衍生出了B树

  • B树

B树的概念
在计算机科学中,B树(英语:B-tree)是一种自平衡的树,能够保持数据有序。这种数据结构能够让查找数据、顺序访问、插入数据及删除的动作,都在对数时间内完成。B树,概括来说是一个一般化的二叉查找树(binary search tree),可以拥有多于2个子节点。与自平衡二叉查找树不同,B树为系统大块数据的读写操作做了优化。B树减少定位记录时所经历的中间过程,从而加快存取速度。B树这种数据结构可以用来描述外部存储。这种数据结构常被应用在数据库和文件系统的实现上。

  • b树的图析
    在这里插入图片描述

B树他的节点可以存放多个数据
B树的不足:
当查询大量连续数据的时候,需要回旋次数很多,这样的话,该让查找效率变低
衍生出了B+树

  • B+树

B+树的概念
B+树:有两个指针,一个指向根节点,另一个指向关键字最小得叶子节点,而且所有得叶子节点之间也是一种链式环结构,
因此:B+树:有两种查找运算,一种是主键得范围查找和分页查找,另一种是从根节点开始,进行随机查找。

  • B+树的图解
    在这里插入图片描述

B+树在B树的基础上,让查找大批连续数的时候,不用再多次回旋查找了,提高了效率


所以:mysql的数据结果时B+树

索引的概念

匹配的查询可以通过索引快速定位到指定的数据

  • mysql索引的种类
    在这里插入图片描述

一般情况下,sql语句中尽可能多的带主键字段,方便查询,但是主键字段的条件一定会生效嘛?
不一定
回表:
在这里插入图片描述

  • mysql 索引B+树的层数
    在这里插入图片描述
  • mysql Innodb – B+Tree
    在这里插入图片描述
  • mysql myisam-- B+Tree
    在这里插入图片描述
  • 聚簇索引和非聚簇索引

聚簇索引:数据和索引时放在一起的
一个表的聚簇索引一定是主键索引嘛?不一定
因为:当一个表有主键的时候,他的聚簇索引就是主键,如果没有的话,那聚簇索引就是他的唯一
键,如果没有唯一键的话,就是low-id
一个表的聚簇索引有多个嘛?只有一个
主键索引一定是聚簇索引嘛?假如说创建表的时候没有主键,没有唯一键,添加数据之后,设置了主键?

  • innodb主键聚簇,myisam非聚簇
  • innodb的普通列索引是非聚簇。
  • sql语句中如何使用索引
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值