加入收藏 | 设为首页 | 会员中心 | 我要投稿 云计算网_宿迁站长网 (https://www.0527zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

Mysql中索引的作用是哪些

发布时间:2022-02-17 22:43:01 所属栏目:MySql教程 来源:互联网
导读:Mysql中索引的作用是什么?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。 Mysql中索引的作用是什么 常见索引类型(实现层面) 索引种类(应用层面) 聚簇索引与非聚簇索引 覆盖索引 最
      Mysql中索引的作用是什么?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。
 
      Mysql中索引的作用是什么
 
常见索引类型(实现层面)
索引种类(应用层面)
聚簇索引与非聚簇索引
覆盖索引
最佳索引使用策略
1.常见索引类型(实现层面)
 
首先不谈Mysql怎么实现索引的,先马后炮一下,如果让我们来设计数据库的索引,该怎么设计?
 
我们首先思考一下索引到底想达到什么效果?其实就是想能够实现快速查找数据的策略,所以索引的实现本质上就是一个查找算法。
 
但是跟普通的查找有所不同,因为我们的数据有一下特征:
 
1.存储的数据是非常非常多的
 
2.并且还不断的动态变化
 
所以实现索引时需要考虑到这两个特点。我们需要找一个最合适的数据结构算法来实现查找功能。
 
下面一起看下常见的查找策略,如下图:
  
由于前面说的两个特点我们首先排除静态查找的算法。
 
至于查找树,我们有二叉树和多叉树两种选择:
 
二叉树:如果选择二叉树的话,由于我们的数据量庞大,二叉树的深度会变得非常大,我们的索引树会变成参天大树,每次查询会导致很多磁盘IO。
 
多叉树:多叉树解决了了树的深度大的问题,那么我们到底选择B树还是B+树呢?
  
从上面图可知B+树的叶子节点存放了所有的索引值,并且叶子结点之间以链表的形式相互关联,所以我们只需从最左的链表遍历的话即可查找所有的值,最常见的用途就是范围查找,而B树则不满足这范围查找,又或者说实现特别复杂,所以Mysql最终选择了使用B+树实现这一功能。
 
 B-Tree 索引(B+树)
 
先说明一下,虽然叫在Mysql官方叫做B-Tree索引,但采用的是B+树数据结构。
 
B-tree索引能够加快访问数据的速度,不需要进行全表扫描,而是从索引树的根节点层层往下搜索,在根节点存放了索引值和指向下一个节点的指针。

(编辑:云计算网_宿迁站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!