索引的用处:
建立索引的目的是加快对表中记录的查找或排序。 为表设置索引要付出代价的:一是增加了数据库的存储空间,二是在插入和修改数据时要花费较多的时间(因为索引也要随之变动)。
索引的好处:
创建索引可以大大提高系统的性能。第一,通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性。第二,可以大大加快数据的检索速度,这也是创建索引的最主要的原因。第三,可以加速表和表之间的连接,特别是在实现数据的参考完整性方面特别有意义。第四,在使用分组和排序子句进行数据检索时,同样可以显著减少查询中分组和排序的时间。第五,通过使用索引,可以在查询的过程中,使用优化隐藏器,提高系统的性能。
索引的弊端:
增加索引也有许多不利的方面。第一,创建索引和维护索引要耗费时间,这种时间随着数据量的增加而增加。第二,索引需要占物理空间,除了数据表占数据空间之外,每一个索引还要占一定的物理空间,如果要建立聚簇索引,那么需要的空间就会更大。第三,当对表中的数据进行增加、删除和修改的时候,索引也要动态的维护,这样就降低了数据的维护速度。
不应该创建索引的的这些列具有下列特点:
第一,对于那些在查询中很少使用或者参考的列不应该创建索引。这是因为,既然这些列很少使用到,因此有索引或者无索引,并不能提高查询速度。相反,由于增加了索引,反而降低了系统的维护速度和增大了空间需求。
第二,对于那些只有很少数据值的列也不应该增加索引。这是因为,由于这些列的取值很少,例如人事表的性别列,在查询的结果中,结果集的数据行占了表中数据行的很大比例,即需要在表中搜索的数据行的比例很大。增加索引,并不能明显加快检索速度。
第三,对于那些定义为text, image和bit数据类型的列不应该增加索引。这是因为,这些列的数据量要么相当大,要么取值很少,不利于使用索引。
第四,当修改性能远远大于检索性能时,不应该创建索引。这是因为,修改性能和检索性能是互相矛盾的。当增加索引时,会提高检索性能,但是会降低修改性能。当减少索引时,会提高修改性能,降低检索性能。因此,当修改操作远远多于检索操作时,不应该创建索引。
索引的类型::唯一索引、主键索引和聚集索引
提示:尽管唯一索引有助于定位信息,但为获得最佳性能结果,建议改用主键或唯一约束。 唯一索引 唯一索引是不允许其中任何两行具有相同索引值的索引。 当现有数据中存在重复的键值时,大多数数据库不允许将新创建的唯一索引与表一起保存。数据库还可能防止添加将在表中创建重复键值的新数据。例如,如果在employee表中职员的姓(lname)上创建了唯一索引,则任何两个员工都不能同姓。 主键索引 数据库表经常有一列或列组合,其值唯一标识表中的每一行。该列称为表的主键。 在数据库关系图中为表定义主键将自动创建主键索引,主键索引是唯一索引的特定类型。该索引要求主键中的每个值都唯一。当在查询中使用主键索引时,它还允许对数据的快速访问。 聚集索引 在聚集索引中,表中行的物理顺序与键值的逻辑(索引)顺序相同。一个表只能包含一个聚集索引。 如果某索引不是聚集索引,则表中行的物理顺序与键值的逻辑顺序不匹配。与非聚集索引相比,聚集索引通常提供更快的数据访问速度。
分享到:
相关推荐
本讲座主要围绕Pandas中的索引操作及其高级索引概念,特别是索引对象的重要性和特性。 首先,让我们了解Pandas中的核心数据结构。Series是一个一维数组,类似于Python的列表,但其元素都具有唯一的标签,这些标签...
在Python数据分析领域,`pandas`库是不可或缺的工具,其中索引操作是核心功能之一。本讲座将探讨`pandas`中的高级索引技术,特别是重置索引的概念及其重要性。重置索引可以帮助我们更好地管理和组织数据,使数据分析...
本项目是一款以Go语言为核心的ElasticSearch状态监控与索引操作可视化工具——EV。它集成了Go、JavaScript、Vue、CSS和HTML等多种语言技术,共包含422个文件,包括122个Go源文件、96个JavaScript文件、77个Vue组件、...
### MongoDB聚合与索引操作详解 #### 一、实验目的 在本次实验中,我们将深入探讨MongoDB中的索引操作及其重要性,并通过实践来掌握如何有效地创建和使用索引以提高查询性能。 1. **理解MongoDB索引的用途**: -...
在数据分析领域,Python是一种强大的工具,它提供了丰富的库来处理和理解复杂的数据集。...因此,建议大家通过编写代码和解决实际问题来加深对Python数据分析中索引操作的理解,从而提升自己的数据分析能力。
Oracle视图和索引操作知识点总结 Oracle视图是一种虚拟表,从一个或多个表(其他视图)中导出,并且其结构和数据是建立在对表的查询基础之上的。视图定义是存储在数据库中的,但其对应的数据并不实际地以视图结构...
《LuceneTest:简明索引操作应用指南》 在信息技术领域,搜索引擎技术扮演着至关重要的角色,而Apache Lucene是Java平台上的一个开源全文检索库。它为开发者提供了强大的文本搜索功能,使得构建自己的搜索引擎变得...
首先,选取子集是层次化索引操作中的基础。在这个例子中,我们有一个包含了书籍类别、书名和销售数量的数据表格。假设我们想要获取所有类别为“小说”的书籍信息,可以使用层次化的选取方式来完成。例如,如果我们只...
### Matrix Indexing in MATLAB #### 引言 在MATLAB中,索引是选择...这些基本的索引操作为更复杂的矩阵索引打下了基础,同时也展示了MATLAB在处理数据时的强大功能。接下来的文章将继续探讨矩阵索引的其他高级主题。
Oracle数据库管理与应用实例教程中,视图和索引操作是关键的数据库管理技能。视图是数据库系统中的一个重要概念,它提供了一种从不同角度查看数据的方式,而索引则能显著提升数据查询的效率。 **视图概述** 视图是...
索引操作的思维导图xmind
Python数据分析实践:NumPy数组的切片和索引操作.pdf
Oracle11g教程_第6章_视图和索引操作 ppt
Python数据分析实践:NumPy数组的切片和索引操作续.pdf
计算机后端-PHP视频教程. php与mysql加强- 08. php加强44-索引操作.wmv
这不仅可以优化查询性能,还能在大型索引操作中节省磁盘空间。 优化索引还包括设置索引选项,如调整填充因子,以适应不同的查询模式。重命名索引则有助于管理和理解数据库结构,但需要注意索引名称的唯一性,不能与...
改类封装elasticsearch5.x以rest风格操作的索引的部分api。类中有详细的注释,可供参考学习。希望能帮到有需要的同学。