![976d602941621e2df81688218c6d220a.png](https://img-blog.csdnimg.cn/img_convert/976d602941621e2df81688218c6d220a.png)
MySQL官方对索引的定义为:索引(Index)是帮助MySQL高效获取数据的数据结构。即索引的本质:索引是数据结构。
索引的实现通常使用B树和变种的B+树(mysql常用的索引就是B+树)
我们大家在工作中经常用到数据库索引,可能很多人只是简单的把where条件后的字段设置为一个索引。
为什么要这么设置?这么设置合理吗?应该怎么使用这个索引?
本文介绍Mysql索引常识,虽然枯燥,但作为一枚有理想的程序猿,还是需要做到心中有数!!!
索引结构分类
Mysql目前主要有以下几种索引结构:HASH,BTREE,RTREE
BTREEBTREE索引就是一种将索引值按一定的算法,存入一个树形的数据结构中(二叉树),每次查询都是从树的入口root开始,依次遍历node,获取leaf。BTREE是MySQL里默认和最常用的索引类型
HASH由于HASH的唯一(几乎100%的唯一)及类似键值对的形式,很适合作为索引。HASH索引可以一次定位,不需要像树形索引那样逐层查找,因此具有极高的效率。但是,这种