MySQL索引

一、谈谈你对索引的理解

索引是一种用于快速查询检索数据的数据库存储结构,他保存了数据库指定字段的数据位置

二、常见的两种索引结构

MySql中常见的两种索引结构:B+TREE索引和HASH索引;

1、B+TREE索引

特点:

  • 所有的节点都是按递增顺序排列的,遵循左小右大的原则;
  • 数据data存储在叶子节点中,叶子节点中包含了所有节点元素的值;
  • 每一个父节点的值都包含在子节点中,是最大或最小的那个值;
  • 每一个叶子节点,都有一个指向下一个叶子节点的指针,形成了有序链表。

查找:

  • 首先在根节点进行二分查找,找到对应的叶子节点;
  • 在叶子节点上进行二分查找,找出key所对应的data。(由于叶子节点形成了有序链表,可以通过指针继续遍历相邻的叶子节点,提高查找效率。)
2、HASH索引

哈希索引又称为散列索引,基于哈希表实现,目前仅有MEMORY存储引擎和HEAP存储引擎支持这类索引;

特点:

  • 无法用于排序与分组;
  • 只支持精确查找,无法用于部分查找和范围查找。

三、索引的分类

按照逻辑划分:普通索引、唯一索引、主键索引、全文索引;

按照实际使用划分:单列索引、组合索引。

四、索引的优缺点

优点:

  • 可以加快数据的检索速度;
  • 通过创建唯一性索引,保证了数据库中每一行数据的唯一性。

缺点:

  • 创建和维护索引需要耗费大量时间,在进行表的增删改的时候,如果存在索引,则需要对索引也进行动态的修改,降低了SQL的执行效率;
  • 索引需要使用物理文件存储,会耗费空间;
  • 在数据表数据体量不大的情况下,索引并不一定比全表查询快。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值