索引的工做原理及其优缺点

数据库索引,在数据库管理系统中是一个排序形式的数据结构,以协助快速查询和更新数据库表中数据。索引的实现一般使用B树及其变种B+树。算法

在数据以外,数据库系统还维护着那些知足特定查找算法的数据结构,这些数据结构以某种方式引用(指向)数据,这样就能够在这些数据结构上实现高级查找算法。这种数据结构,就是索引。数据库

为表设置索引也是要付出相应的代价:第一,数据库的存储空间增大了;第二,在插入和修改数据时要花费较多的时间(由于索引也要随之变更)。数据结构

建立索引能够大大提升系统的性能。性能

第一,经过建立惟一性索引,能够保证数据库表中每一行数据的惟一性。优化

第二,能够大大加快数据的检索速度,这也是建立索引的最主要的缘由。code

第三,能够加速表和表之间的链接,特别是在实现数据的参考完整性方面特别有意义。排序

第四,在使用分组和排序子句进行数据检索时,一样能够显著减小查询中分组和排序的时间。索引

第五,经过使用索引,能够在查询的过程当中,使用优化隐藏器,提升系统的性能。get

也许会有人要问:增长索引有如此多的优势,为何不对表中的每个列建立一个索引呢?由于,增长索引也有许多不利的方面。引用

第一,建立索引和维护索引要耗费时间,这种时间随着数据量的增长而增长。

第二,索引须要占物理空间,除了数据表占数据空间以外,每个索引还要占必定的物理空间,若是要创建聚簇索引,那么须要的空间就会更大。

第三,当对表中的数据进行增长、删除和修改的时候,索引也要动态的维护,这样就下降了数据的维护速度。

相关文章
相关标签/搜索