索引的出现
索引的出现用一句话来说就是为了提高数据的查询效率, 就像数据目录一样
索引的常见模型
实现索引的主要方式有三种
哈希表
哈希表是一种以键-值存储的数据结构,我们查找时只需要输入待查找值的key,数据能够以很快的效率返回。
哈希值的优势
- 查找快,时间复杂度时O(1)
哈希值的劣势:
- 进行区间查询的速度很慢()
- 只适用等值查询,无法进行大于小于
有序数组
有序数组时将数据以数组的形式来进行存储
优势:
- 数据进行等值查询和区间查询的效率都很高。
劣势:
- 插入和删除的效率很低
二叉搜索树
二叉搜索树增加、删除、查询的效率都很高,时间复杂度都是O(n), 但是实现上一般都不采用二叉搜索树来进行存储,因为二叉搜索树太高。如果一个表格有100万数据,树的高度可以达到20.那就代表需要访问20次磁盘,这在机械硬盘是十分耗费时间的。
所以一般使用N叉树,这个N一般是1200.这样树高4层就能存储1200的三次方,大概17亿条数据记录。
总结
一个数据库首先应该关注他的数据模型,根据数据模型就能大概知道这个数据库的性能优势和性能瓶颈,从而才能知道这个数据库的使用场景。
索引的类型
根据存储的内容可分为主键索引和非主键索引,主键索引也被称为聚簇索引,非主键索引也被称为二级索引。
基于主键索引和非主键索引的查询有什么区别。
- 基于主键索引查询,由于