`

索引的操作

 
阅读更多
索引的用处:
    建立索引的目的是加快对表中记录的查找或排序。    为表设置索引要付出代价的:一是增加了数据库的存储空间,二是在插入和修改数据时要花费较多的时间(因为索引也要随之变动)。
    索引的好处:
    创建索引可以大大提高系统的性能。第一,通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性。第二,可以大大加快数据的检索速度,这也是创建索引的最主要的原因。第三,可以加速表和表之间的连接,特别是在实现数据的参考完整性方面特别有意义。第四,在使用分组和排序子句进行数据检索时,同样可以显著减少查询中分组和排序的时间。第五,通过使用索引,可以在查询的过程中,使用优化隐藏器,提高系统的性能。
    索引的弊端:
    增加索引也有许多不利的方面。第一,创建索引和维护索引要耗费时间,这种时间随着数据量的增加而增加。第二,索引需要占物理空间,除了数据表占数据空间之外,每一个索引还要占一定的物理空间,如果要建立聚簇索引,那么需要的空间就会更大。第三,当对表中的数据进行增加、删除和修改的时候,索引也要动态的维护,这样就降低了数据的维护速度。
    不应该创建索引的的这些列具有下列特点:   
    第一,对于那些在查询中很少使用或者参考的列不应该创建索引。这是因为,既然这些列很少使用到,因此有索引或者无索引,并不能提高查询速度。相反,由于增加了索引,反而降低了系统的维护速度和增大了空间需求。   
    第二,对于那些只有很少数据值的列也不应该增加索引。这是因为,由于这些列的取值很少,例如人事表的性别列,在查询的结果中,结果集的数据行占了表中数据行的很大比例,即需要在表中搜索的数据行的比例很大。增加索引,并不能明显加快检索速度。   
    第三,对于那些定义为text, image和bit数据类型的列不应该增加索引。这是因为,这些列的数据量要么相当大,要么取值很少,不利于使用索引。   
    第四,当修改性能远远大于检索性能时,不应该创建索引。这是因为,修改性能和检索性能是互相矛盾的。当增加索引时,会提高检索性能,但是会降低修改性能。当减少索引时,会提高修改性能,降低检索性能。因此,当修改操作远远多于检索操作时,不应该创建索引。
    索引的类型::唯一索引、主键索引和聚集索引
    提示:尽管唯一索引有助于定位信息,但为获得最佳性能结果,建议改用主键或唯一约束。   唯一索引 唯一索引是不允许其中任何两行具有相同索引值的索引。   当现有数据中存在重复的键值时,大多数数据库不允许将新创建的唯一索引与表一起保存。数据库还可能防止添加将在表中创建重复键值的新数据。例如,如果在employee表中职员的姓(lname)上创建了唯一索引,则任何两个员工都不能同姓。   主键索引   数据库表经常有一列或列组合,其值唯一标识表中的每一行。该列称为表的主键。   在数据库关系图中为表定义主键将自动创建主键索引,主键索引是唯一索引的特定类型。该索引要求主键中的每个值都唯一。当在查询中使用主键索引时,它还允许对数据的快速访问。   聚集索引   在聚集索引中,表中行的物理顺序与键值的逻辑(索引)顺序相同。一个表只能包含一个聚集索引。   如果某索引不是聚集索引,则表中行的物理顺序与键值的逻辑顺序不匹配。与非聚集索引相比,聚集索引通常提供更快的数据访问速度。
  
  
分享到:
评论

相关推荐

    Pandas索引操作及高级索引之索引对象.pptx

    本讲座主要围绕Pandas中的索引操作及其高级索引概念,特别是索引对象的重要性和特性。 首先,让我们了解Pandas中的核心数据结构。Series是一个一维数组,类似于Python的列表,但其元素都具有唯一的标签,这些标签...

    pandas索引操作及高级索引之重置索引.pptx

    在Python数据分析领域,`pandas`库是不可或缺的工具,其中索引操作是核心功能之一。本讲座将探讨`pandas`中的高级索引技术,特别是重置索引的概念及其重要性。重置索引可以帮助我们更好地管理和组织数据,使数据分析...

    基于Go语言的弹性搜索状态监控与索引操作可视化设计源码

    本项目是一款以Go语言为核心的ElasticSearch状态监控与索引操作可视化工具——EV。它集成了Go、JavaScript、Vue、CSS和HTML等多种语言技术,共包含422个文件,包括122个Go源文件、96个JavaScript文件、77个Vue组件、...

    MongDB聚合与索引操作

    ### MongoDB聚合与索引操作详解 #### 一、实验目的 在本次实验中,我们将深入探讨MongoDB中的索引操作及其重要性,并通过实践来掌握如何有效地创建和使用索引以提高查询性能。 1. **理解MongoDB索引的用途**: -...

    Python数据分析应用:索引操作.pptx

    在数据分析领域,Python是一种强大的工具,它提供了丰富的库来处理和理解复杂的数据集。...因此,建议大家通过编写代码和解决实际问题来加深对Python数据分析中索引操作的理解,从而提升自己的数据分析能力。

    Oracle第6章视图和索引操作.pptx

    Oracle视图和索引操作知识点总结 Oracle视图是一种虚拟表,从一个或多个表(其他视图)中导出,并且其结构和数据是建立在对表的查询基础之上的。视图定义是存储在数据库中的,但其对应的数据并不实际地以视图结构...

    luceneTest简单索引操作的应用

    《LuceneTest:简明索引操作应用指南》 在信息技术领域,搜索引擎技术扮演着至关重要的角色,而Apache Lucene是Java平台上的一个开源全文检索库。它为开发者提供了强大的文本搜索功能,使得构建自己的搜索引擎变得...

    Python数据分析应用:层次化索引操作.pptx

    首先,选取子集是层次化索引操作中的基础。在这个例子中,我们有一个包含了书籍类别、书名和销售数量的数据表格。假设我们想要获取所有类别为“小说”的书籍信息,可以使用层次化的选取方式来完成。例如,如果我们只...

    Matrix Indexing in MATLAB(MatLab中的索引操作)

    ### Matrix Indexing in MATLAB #### 引言 在MATLAB中,索引是选择...这些基本的索引操作为更复杂的矩阵索引打下了基础,同时也展示了MATLAB在处理数据时的强大功能。接下来的文章将继续探讨矩阵索引的其他高级主题。

    视图和索引操作课件讲义.pptx

    Oracle数据库管理与应用实例教程中,视图和索引操作是关键的数据库管理技能。视图是数据库系统中的一个重要概念,它提供了一种从不同角度查看数据的方式,而索引则能显著提升数据查询的效率。 **视图概述** 视图是...

    索引操作的思维导图xmind

    索引操作的思维导图xmind

    Python数据分析实践:NumPy数组的切片和索引操作.pdf

    Python数据分析实践:NumPy数组的切片和索引操作.pdf

    Oracle11g教程_第6章_视图和索引操作

    Oracle11g教程_第6章_视图和索引操作 ppt

    Python数据分析实践:NumPy数组的切片和索引操作续.pdf

    Python数据分析实践:NumPy数组的切片和索引操作续.pdf

    计算机后端-PHP视频教程. php与mysql加强- 08. php加强44-索引操作.wmv

    计算机后端-PHP视频教程. php与mysql加强- 08. php加强44-索引操作.wmv

    创建索引和调优索引

    这不仅可以优化查询性能,还能在大型索引操作中节省磁盘空间。 优化索引还包括设置索引选项,如调整填充因子,以适应不同的查询模式。重命名索引则有助于管理和理解数据库结构,但需要注意索引名称的唯一性,不能与...

    java elasticsearch rest风格索引操作

    改类封装elasticsearch5.x以rest风格操作的索引的部分api。类中有详细的注释,可供参考学习。希望能帮到有需要的同学。

Global site tag (gtag.js) - Google Analytics