`
xudongcsharp
  • 浏览: 467878 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

数据库创建索引有什么优点和缺点

 
阅读更多
数据库中索引的优缺点
为什么要创建索引呢?这是因为,创建索引可以大大提高系统的性能。
第一,通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性。
第二,可以大大加快数据的检索速度,这也是创建索引的最主要的原因。
第三,可以加速表和表之间的连接,特别是在实现数据的参考完整性方面特别有意义。
第四,在使用分组和排序子句进行数据检索时,同样可以显著减少查询中分组和排序的时间。
第五,通过使用索引,可以在查询的过程中,使用优化隐藏器,提高系统的性能。

也许会有人要问:增加索引有如此多的优点,为什么不对表中的每一个列创建一个索引呢?这种想法固然有其合理性,然而也有其片面性。虽然,索引有许多优点,但是,为表中的每一个列都增加索引,是非常不明智的。这是因为,增加索引也有许多不利的一个方面。
第一,创建索引和维护索引要耗费时间,这种时间随着数据量的增加而增加。
第二,索引需要占物理空间,除了数据表占数据空间之外,每一个索引还要占一定的物理空间,如果要建立聚簇索引,那么需要的空间就会更大。
第三,当对表中的数据进行增加、删除和修改的时候,索引也要动态的维护,这样就降低了数据的维护速度。


一般来说,不应该创建索引的的这些列具有下列特点:
第一,对于那些在查询中很少使用或者参考的列不应该创建索引。这是因为,既然这些列很少使用到,因此有索引或者无索引,并不能提高查询速度。相反,由于增加了索引,反而降低了系统的维护速度和增大了空间需求。
第二,对于那些只有很少数据值的列也不应该增加索引。这是因为,由于这些列的取值很少,例如人事表的性别列,在查询的结果中,结果集的数据行占了表中数据行的很大比例,即需要在表中搜索的数据行的比例很大。增加索引,并不能明显加快检索速度。
第三,对于那些定义为text, image和bit数据类型的列不应该增加索引。这是因为,这些列的数据量要么相当大,要么取值很少。
第四,当修改性能远远大于检索性能时,不应该创建索引。这是因为,修改性能和检索性能是互相矛盾的。当增加索引时,会提高检索性能,但是会降低修改性能。当减少索引时,会提高修改性能,降低检索性能。因此,当修改性能远远大于检索性能时,不应该创建索引。
分享到:
评论

相关推荐

    数据库索引的作用和优点缺点

     同理,SQL Server允许用户在表中创建索引,指定按某列预先排序,从而大大提高查询速度。  * SQL Server中的数据也是按页( 4KB )存放  * 索引:是SQL Server编排数据的内部方法。它为SQL Server提供一种方法...

    数据库索引的优缺点及其附加资料

    本文档详细说明了什么时候创建索引;创建索引的优缺点等

    数据库中索引的优缺点

    一、索引的概念  索引是加快检索表中数据的方法。数据库的索引类似于书籍的索引。在书籍中,索引允许用户不必翻阅完整个书能迅速地找到所需要的信息。在数据库中,索引也允许数据库...  三、索引的优点  1.创建

    海大数据库原理综合实验六

    各有哪些优缺点? 4 实验步骤 4.1 数据库概念模型设计 (1) 进行需求分析。 (2) 设计数据库概念模型,画出E-R图。 4.2 数据库逻辑模型设计 (3) 根据数据库概念模型设计数据库的逻辑模型。 (4) 对逻辑...

    MySQL 索引的优缺点以及创建索引的准则

    一、为什么要创建索引呢(优点) 这是因为,创建索引可以大大提高系统的性能。 第一, 通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性。 第二, 可以大大加快数据的检索速度,这也是创建索引的最主要...

    数据库和ado知识

    数据库语言 数据库的简易流程(数据库客户端软件和数据库服务软件的执行流程) ...三层结构的优缺点 邮件发送方法 Excel导入导出 MD5加密解密方法 读取数据库后,判断dataset里列的值是否为空 项目术语

    索引的优点和缺点第1/2页

    索引的优点和缺点 为什么要创建索引呢?这是因为,创建索引可以大大提高系统的性能。第一,通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性。第二,可以大大加快数据的检索速度,这也是创建索引的最主要...

    MySQL数据库面试题(2020最新版)

    文章目录数据库基础知识为什么要使用数据库什么是SQL?什么是MySQL?数据库三大范式是什么mysql有关权限...创建索引的原则(重中之重)创建索引的三种方式,删除索引创建索引时需要注意什么?使用索引查询一定能提高查询

    Oracle数据库管理员技术指南

    3.3.6 单独创建索引 3.3.7 设置大的初始化参数 SORT_AREA _SIZE 3.3.8 使用大的导入缓冲区 3.3.9 最小化数据库提交次数 3.4 Oracle8i 的新特性 3.4.1 子分区的导出和导入 3.4.2 导出/导入多个转储文件 3.4.3...

    学生成绩管理系统数据库设计.doc

    所以,在创建索引时,要综合考虑其优缺点。可以参考以下原则为表中 的列创建查询:(1)经常用于查询的列;(2)经常用于分组和排序的列;(3)在连接 中常用到的列。 按照以上原则,我们可以为以下列创建索引:Stu_...

    Java69道Spring面试题和答案.docx

    数据库索引的优点和缺点 一、为什么要创建索引呢(优点)? 这是因为,创建索引可以大大提高系统的性能。 第一, 通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性。 第二, 可以大大加快数据的检索速度,...

    详解mysql建立索引的使用办法及优缺点分析

    为什么要创建索引呢? 这是因为,创建索引可以大大提高系统的性能。 第一、通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性。 第二、可以大大加快数据的检索速度,这也是创建索引的最主要的原因。 第三、...

    mysql面试题,面试会问到的基础问题

    19. 概述存储过程及其优缺点。 20. 什么是相关子查询?如何使用这些查询? 21. 什么是SQL注入式攻击? 22. 如何防范SQL注入式攻击? 23. 默认的系统数据库有哪些? 24. 默认创建一个数据库,会生成哪些 25.创建...

    Java笔试题目.doc

    数据库索引的优点和缺点 一、为什么要创建索引呢(优点)? 这是因为,创建索引可以大大提高系统的性能。 第一, 通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性。 第二, 可以大大加快数据的检索速度,...

    Javamybatis面试题.docx

    数据库索引的优点和缺点 一、为什么要创建索引呢(优点)? 这是因为,创建索引可以大大提高系统的性能。 第一, 通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性。 第二, 可以大大加快数据的检索速度,...

    Java面试题大合集.doc

    数据库索引的优点和缺点 一、为什么要创建索引呢(优点)? 这是因为,创建索引可以大大提高系统的性能。 第一, 通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性。 第二, 可以大大加快数据的检索速度,...

    数据库系统概论复习资料1.doc

    12. 简述层次模型的优缺点。 5 13. 阐述数据库三级模式及优点、二级映象的含义及作用。 6 14. 阐述DBA的职责。 6 第二章 6 1. 简述基本关系的性质 7 2. 写出关系模式的五元组形式化表示并说明各符号的含义。 7 第三...

    数据库课程设计报告1.pdf

    输入书籍的编号既可以清除用户的借书记录 总结: 系统优缺点:本系统是在学习过数据库系统原理后用MFC语言所做的 一款系统,具有简易的图书馆信息管理功能,但是对于惩罚系统和对借 阅时间的管理上做的不够完善和...

    数据库设计工具.docx

    本文介绍的数据库设计工具有PowerDesign、ERWin、 和BDB,介绍了它们的特点、进展状况及优缺点等,本文着重分析BDB。 关键词:数据库;设计工具;BDB 引言 随着数据库规模日趋庞大,数据库设计者所面临的问题也...

Global site tag (gtag.js) - Google Analytics