Mysql中索引的作用是哪些
发布时间:2022-02-18 01:59:55 所属栏目: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索引能够加快访问数据的速度,不需要进行全表扫描,而是从索引树的根节点层层往下搜索,在根节点存放了索引值和指向下一个节点的指针。 (编辑:晋中站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |