栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

数据库索引

数据库索引

1、什么是索引

索引是一种特殊的文件,它里面包含对数据表里的所有记录的指针。

数据库索引是一种排序的数据结构,可以协助快速查询、更新数据库表中的数据。

2、索引的优缺点 优点:

(1)大大加快数据的检索速度

(2)在查询过程中,使用优化隐藏器,提高系统性能。

缺点:

(1)时间方面:创建和维护索引需要耗费时间,对表中的数据进行增删查改时,索引也需要动态的维护,也会耗费时间。

(2)空间方面:索引是一种文件,需要占用物理空间。

3、MySQL的索引类型

(1)普通索引:即一个索引只包含单个列,一个表可以有多个单列索引。

(2)唯一索引:索引的列的值,必须唯一,但允许有空值。

(3)复合索引:多列值组成一个索引,专门用于组合搜索,其效率大于索引合并。

(4)聚簇索引:在InnoDB中,索引B+树的叶子结点存储了整行数据的是 主键索引(也叫作聚簇索引)。也就是说,将数据存储和索引放到了一块,找到了索引,也就找到了数据。

(5)非聚簇索引:在InnoDB中,如果索引B+树的叶子结点存储了主键的值,它就是非主键索引(也叫作非聚簇索引)。

4、聚簇索引和非聚簇索引的区别

非聚簇索引的叶子结点,存储的是该列对应的主键,而不是表中的数据。

5、索引的底层实现 B+树性质:

(1)B+树的每个非叶子结点,存放的元素只用于索引所用,所有数据保存在叶子结点。

(2)n棵子树的结点包含n个关键字,不用来保存数据,而用来保存数据的索引。

(3)所有的叶子结点中,包含了全部关键字的信息,及指向含这些关键字的指针,且叶子结点本身根据关键字的大小,从小到大顺序链接。

(4)所有的非叶子结点可看成是索引部分,结点中仅含其子树中的最大(或最小)关键字。

(5)B+树中,数据对象的插入和删除仅在叶子结点上进行。

(6)B+树有两个头指针,一个是树的根节点,一个是最小关键字的叶子结点。

一个m阶的B+树规定:

(1)有k个子树的中间结点包含k个元素,每个元素不保存数据,只用来索引,所有数据都保存在叶子结点上。

(2)所有的叶子结点中包含了全部元素的信息,以及指向这些元素记录的指针,且叶子结点本身根据关键字的大小,自小而大顺序链接。

(3)所有的中间结点元素都同时存在于子节点,在子节点元素中是最大(最小)元素。

B+树的好处

(1)B+树的磁盘读写代价更低

(2)B+树的数据都存放在叶子结点中,分支结点均为索引,方便扫库,只需扫一遍叶子结点即可。更适用于区间查询。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/304503.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号