浅析数据库索引

什么是索引

索引的目的就是加快数据的查询速度,就相当于一本书的目录。

索引的分类和结构

索引的结构(按存储结构分类)主要有B-tree索引,哈希索引和全文索引。
索引的类型主要有聚集索引,非聚集索引和联合索引。

Btree索引

这个是大学数据库课本中主讲的索引结构,也是最普遍的一种索引方式。在SQL server中,聚集索引和非聚集索引都是B树结构存储的。B树结构是一种平衡树结构。

B-Tree和B+Tree

B+Tree其实是B-Tree的一种优化,B+Tree的能完成的功能更强大,但是创建成本更高。B+Tree和B-Tree的区别主要有:
1.非叶子节点只存储键值信息
2.所有叶子节点之间都有一个链指针
3.数据记录都存放在叶子节点中

哈希索引

Hash索引是基于Hash表实现的,只有查询条件精确匹配Hash索引中的所有列时,才能够使用到Hash索引。

对于Hash索引中的所有列,存储引擎都会为每一行计算一个Hash码,Hash索引中存储的就是Hash码。

Hash索引不支持部分索引查找也不支持范围查找。

Hash索引无法用于排序

聚集索引和非聚集索引

聚集索引对数据按索引关键字值进行排序,非聚集索引不对数据进行按索引关键字值进行排序,而只将关键字值进行排序。

一个表中只能拥有一个聚集索引。
一个表中可以拥有多个非聚集索引。
对频繁进行更改操作的列,不适合建立聚集索引

索引优化数据库方法

(此段摘录至):https://blog.csdn.net/qq_45636812/article/details/103408906

1、创建索引
2、复合索引
3、索引不会包含有NULL值的列
4、使用短索引
5、排序的索引问题
6、不鼓励使用like操作
7、不要在列上进行运算
8、不使用NOT IN和<>操作

总结

主要是对大学数据库索引的一些概念进行解释,没有贴图,望见谅。

你可能感兴趣的:(浅析数据库索引)