在DBMS中索引 -
索引结构
可以使用某些数据库列创建索引。
索引方法
通常对索引进行排序以使搜索更快,排序索引称为有序索引。
示例: 假设有一个包含几千条记录的employee
表,每条记录的长度为10
个字节。 如果它们的ID是以1
,2
,3 ......
等开头,那么如果要使用ID为543
来搜索学生的信息。
543
。 DBMS将在读取543 * 10 = 5430
字节后读取记录。542 * 2 = 1084
字节后读取记录,这与前一种情况相比非常少。1:1
的关系。在数据文件中,索引记录仅针对少数项目出现。 每个项目都指向一个区块。
在此,索引不是指向主表中的每个记录,而是指向间隙中主表中的记录。
示例: 假设公司在每个部门中包含多个员工。假设使用聚簇索引,其中属于同一Dept_ID
的所有员工都被视为在单个集群中,并且索引指针指向整个集群。 这里Dept_ID
是一个非唯一键。
之前的架构很容易混淆,因为一个磁盘块由属于不同集群的记录共享。如果为单独的集群使用单独的磁盘块,那么它是一种更好的技术。
在稀疏索引中,随着表的大小增加,映射的大小也会增加。 这些映射通常保存在主存储器中,因此地址获取应该更快。 然后,辅助存储器根据从映射获得的地址搜索实际数据。 如果映射大小增加,那么获取地址本身会变慢。 在这种情况下,稀疏索引效率不高。 为了克服这个问题,引入了二级索引。
在二级索引中,为了减小映射的大小,引入了另一级索引。 在该方法中,最初选择列的巨大范围,使得第一级映射变小。 然后将每个范围进一步划分为更小的范围。 第一级的映射存储在主存储器中,因此地址获取更快。 第二级和实际数据的映射存储在辅助存储器(硬盘)中。
示例:
111
的记录,则它将搜索第一级索引中小于或等于111
的最高条目。 这个级别将达到100
。max(111)<= 111
并获得110
。现在使用地址是:110
,它进入数据块并开始搜索每个记录,直到它达到111
。