1、索引是什么?
索引是一个单独的、存储在磁盘上的数据库结构,他们包含对数据库里所有记录的引用指针。或者索引是对数据库表中一列或多列的值进行排序的一种结构。
索引的作用:提高数据库查询的效率。
2、索引有哪些数据结构
索引支持Hash和B+Tree结构
Hash
-可以快速的精确查询,但是不支持范围查询。所以hash索引适用于等值查询的场景,也就是只有KV(Key,Value)的情况,例如Redis、Memcached等这些NoSQL的中间件。
B+tree
- 支持范围查询
(虽然二叉树也支持范围查询,但是当数据量增大时,树高会很高,查询的成本就会随着树高的增加而增加;Btree的一个节点可以存储多个元素,所以降低树高,提高磁盘IO效率;B+tree的叶节点是有指针相连的,相比btree则进一步提高了范围搜索的效率)
可以在下面博客中理解Btree和B+tree的区别
链接: https://blog.csdn.net/weixin_42782897/article/details/89960484.
链接: https://blog.csdn.net/a764340703/article/details/82621781.
3、B+tree中一个节点多少个元素合适
B+树中一个节点为一页或页的倍数最为合适。