索引
一、简介
1、目的
目的: 索引目的说白了就是为了提高查询效率,就像书的目录一样,根据目录可以很快查询到对应的知识。不过索引也有一些不足,比如占用存储空间,降低数据库写操作性能
2、什么时候需要索引,什么时候不需要索引
有些情况下创建索引反而或降低效率
a.在数据库中数据行数比较少时候,就不需要创建索引。比如,当表中数据不到1000行,是不需要创建索引的
b.当表中数据重复度比较高时,这个字段就不需要创建索引。
c.频繁更新的字段不一定要建立索引,更新字段需要更新索引,索引太多更新会造成负担,从而影响效率
二、常见索引模型
数据库服务器有两种存储介质,一种是内存一种是磁盘,内存用于临时存储,容量有限,发生意外比如断电、发生故障重启容易造成数据丢失;磁盘相当于永久存储介质,所以需要我们把索引放到磁盘上。
当我们在磁盘查询时需要io操作,磁盘io操作越多,所消耗时间也就越大,会造成一定的性能影响,所以需要合适的索引数据结构
1、哈希
2、有序数据
3、平衡二叉树
树状结构,左子节点小于父节点,右子节点大于父节点,但是树高影响io操作,因此就有了B树
常见平衡二叉树有很多种,包括二叉搜索树、红黑树、数堆、伸展树。
提到平衡二叉树一般