
课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
随着互联网的不断发展,越来越多的人都在学习达内java编程开发等互联网课程,而本文我们就通过案例分析来简单了解一下,数据库索引基础知识分享。
关于索引那些繁杂的说法/别名
关于索引分类的问题,一直让我们很头疼,因为索引根据不同的维度,有很多种不同繁杂的说法。如果我们不懂这些繁杂的说法,那么在面试的时候不知道面试官在说什么,有可能会一脸懵逼。
从数据结构角度:
B+树索引:查询效率比较平均,一般是3~4的I/O,支持范围查询,范围查询快
哈希索引:单条查询快,但是不支持范围查询,有hash碰撞问题
FULLTEXT索引:目前MyISAM和InnoDB引擎都支持了,分词算法,用于模糊检索字符串
R-Tree索引:用于对GIS数据类型创建SPATIAL索引,B+树多维化
从物理存储角度:
聚集索引/聚簇索引:数据文件和索引文件存储在一个文件,也就是索引文件即数据文件,数据文件即是索引文件
非聚集索引/非聚簇索引:数据文件和索引文件分开存储,分别在不同的文件
密集索引/稠密索引:
文件中的索引项包含搜索键值/索引值和指向磁盘上实际记录的指针。
每条索引项的行对应一条记录,数据查询速度非常快,但是维护成本大。
如何定位数据:
通过二分查找,搜索值=索引项的索引值,就能准确的定位到数据。
稀疏索引:
要求索引字段是按照顺序排序的,否则无法有序索引。
没有为每条记录建立对应的索引项的行,数据查询速度较慢。
但是存储空间小,维护成本低。
如何定位数据:
通过二分查找,搜索值>索引值中的大值,然后根据记录所在的记录集合
按照偏移量进行顺序查找,如果不在当前记录,则继续使用二分法查找。
直到找到为止。
在myisam存储引擎中,不管是什么索引都是非聚集索引/非聚簇索引,稀疏索引。
在innodb存储引擎:有且只有一个聚集索引/聚簇索引,密集索引/稠密索引,而这个索引就是主键索引。innodb存储引擎里的普通二级索引是非聚集索引/非聚簇索引,稀疏索引。
从逻辑角度:
主键索引:使用主键来组织完整的行数据记录
普通索引:在创建索引时,不附加任何限制条件(、非空等限制)
单列索引/单值索引/单一索引:构建索引树的索引列个数为1(创建索引的字段个数为1)
多列索引/联合索引/辅助索引/复合索引/二级索引:构建索引树的索引列个数超过1(创建索引的字段个数>1)
窄索引:构建索引树的索引列个数为1~2
宽索引:构建索引树的索引列个数超过2
【免责声明】本文系本网编辑部分转载,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请在30日内与管理员联系,我们会予以更改或删除相关文章,以保证您的权益!请读者仅作参考。更多内容请加抖音太原达内IT培训学习了解。