数据库稠密索引和稀疏索引

数据库稠密索引和稀疏索引

技术教程gslnedu2024-12-26 13:39:0314A+A-

如果之前没有了解过索引,心中就会有一些疑问:什么是索引?索引有什么作用?

索引文件类似文档的目录,类似于新华字典的索引页,当我们查看一个文档的时,先会扫描目录,接着可快速找到感兴趣的内容。文档的目录,维护了标题、内容、页码的关系。数据库中的索引,是存储了索引字段、存储块关系的文件。因此索引,就是为了提高数据的查询速度。在访问数据时,无需遍历查找,应用程序先会查询索引,找到对应的存储位置后,快速实现数据读取。

索引在数据库中的定义是一种不需要查找所有记录,就能查找到所需记录的辅助存储结构,之所以是辅助存储结构,是相对于主文件来说的。主文件就是一张张物理表,存储了具体的数据。存储的索引结构的载体称之为索引文件,索引文件和主文件成对产生,修改主文件,同步也需要修改索引文件。

在常见的关系型数据库中,当创建库,创建表,定义关键码的时候,会自动根据主关键码产生索引文件,而且也能自动对索引文件进行维护。

索引文件是一种什么样的文件呢?

实际上是一种二维表,包含了索引字段、行指针,是一系列索引项组成。

索引字段是table中若干列,通常是一列,行指针,是对应记录的存储位置,相当于目录中的页码。

索引文件,像数据库文件一样,也有不同类型,主要有排序索引文件、散列索引文件之分。

排序索引文件,是按照连续的磁盘块存储,散列文件存储,是文件块按照单向散列算法进行计算,随机地分布在不同的存储桶上(存储桶本质上是存储块)。

今天和大伙分享下稠密索引和稀疏索引。

【稠密索引】

稠密索引,即每一条记录,对应一个索引字段。稠密索引,访问速度非常块,但是维护成本大。根据索引字段不一样,有候选键索引和非候选键索引之分。

【稀疏索引】

相对稠密索引,稀疏索引并没有每条记录,建立了索引字段,而是把记录分为若干个块,为每个块建立一条索引字段。

稀疏索引字段,要求索引字段是按顺序排序的,否则无法有效索引。

稀疏索引是如何进行定位的呢

假设需要搜索字段值为K的记录,那先检索出比K小的最大值索引字段,再根据该字段所在的记录集合,进行顺序查找,直到找到记录K。

稀疏索引,数据查询速度较慢,但是存储空间小,维护成本低。

那么如何设置索引字段呢?

既然索引是为了提高访问速度,简单说,要是一些数据经常被使用、被查询,那这些字段就应该设置索引。

虽然索引可以提高数据访问速度,如果索引设置不当,不仅不会提高数据访问速度,还会影响数据库性能,降低数据访问速度。

如何评估索引的性能呢?

可从数据访问时间、插入时间、删除时间、存储成本、维护成本等指标进行衡量,往往瑶根据需求,找到一个可接受的平衡点,数据库索引性能调优,是DBA重要的工作职责之一。

好了,今天的分享就到这,希望能帮到大家,感谢关注。

点击这里复制本文地址 以上内容由朽木教程网整理呈现,请务必在转载分享时注明本文地址!如对内容有疑问,请联系我们,谢谢!
qrcode

朽木教程网 © All Rights Reserved.  蜀ICP备2024111239号-8