MySQL索引

一.关于索引

1.索引是什么?有什么用?

"索引是一种特殊的数据库结构,可以用来快速查询数据库表中的特定记录。索引是提高数据库性能的重要方式。MySQL中,所有的数据类型都可以引用索引。” 《MySQL入门很简单》

通俗的理解就是索引是一种数据结构,能够帮助我们快速查询到所属要的数据行。是数据库性能优化最常用的工具之一,就像是书本里的目录一样。
2.索引有几种类型?
MySQL的索引共有六种,分别为:普通索引、唯一性索引、全文索引、单列索引、多列索引和空间索引。

二.索引的存储结构

存储结构:

MySQL的索引使用的是B+树结构,B+树相当于B-树的优化版本。两者都有着很明显的特点。B-树中:树中的每个节点都存储数据,叶子节点之间没有指针。B+树中:数据只存储在叶子节点,每个叶子节点都增加了链指针,连成了一张链表。

B-树与B+树总结:

B-树:B-树因为数据存储在树内,所以在查询数据的时候查询效率极不稳定,最好的情况为O(1)。不适合做数据的遍历操作。
B+树:因为B+树的数据只出现在叶子节点上,所以查询数据时的查询速度非常稳定,没有快慢之分。B+树由于链指针的存在,连接成了一张有序的链表结构,所以在做整张表的遍历和区间查找时非常适合。并且B+树的高度要小于B树的高度,使用磁盘IO次数更少。
因为B+树有便于查找,查找效率稳定且磁盘IO次数更少,所以MySQL的索引结构选择了B+树而非B树。

三.InnoDB引擎和MyISAM引擎

InnoDB引擎:

在InnoDB引擎下,查询过程中,只需查询一次即可得到所有数据。因为InnoDB引擎下的索引为聚集索引,即数据和索引存储在同一个文件里。并且InnoDB引擎支持事务功能。

在MyISAM引擎下,查询过程中,需要查询两次才可以获得所有数据。因为MyISALM引擎下的索引为非聚集索引,即数据和索引存储在不同的两个文件下。第一次查询到数据保存的物理地址,然后再进行第二次查询物理地址获取数据。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值