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

Oracle数据库索引的优点与缺点简介

阅读更多

    我们大家都知道Oracle数据库的索引可以分为:聚集索引,非聚集索引,以及唯一索引。其优点主要是方便查询,其在相关的数据量大时排序更易查询。

    缺点:查询时需要进行重新排序,减少了效率。物理Oracle数据库索引缺点 建立索引效率低,只能建一个。

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

第三,可以加速表和表之间的连接,特别是在实现数据的参考完整性方面特别有意义。第四,在使用分组和排序子句进行数据检索时,同样可以显着减少查询中分组和排序的时间。第五,通过使用索引,可以在查询的过程中,使用优化隐藏器,提高系统的性能。

    也许会有人要问:增加索引有如此多的优点,为什么不对表中的每一个列创建一个索引呢?这种想法固然有其合理性,然而也有其片面性。虽然,索引有许多优点,但是,为表中的每一个列都增加索引,是非常不明智的。这是因为,增加索引也有许多不利的一个方面。

    第一,创建索引和维护索引要耗费时间,这种时间随着数据量的增加而增加。第二,索引需要占物理空间,除了数据表占数据空间之外,每一个索引还要占一定的物理空间,如果要建立聚簇索引,那么需要的空间就会更大。第三,当对表中的数据进行增加、删除和修改的时候,索引也要动态的维护,这样就降低了数据的维护速度。

    索引是建立在数据库表中的某些列的上面。因此,在创建Oracle数据库索引的时候,应该仔细考虑在哪些列上可以创建索引,在哪些列上不能创建索引。

    一般来说,应该在这些列上创建索引,例如:在经常需要搜索的列上,可以加快搜索的速度;在作为主键的列上,强制该列的唯一性和组织表中数据的排列结构;在经常用在连接的列上,这些列主要是一些外键,可以加快连接的速度;

    在经常需要根据范围进行搜索的列上创建索引,因为索引已经排序,其指定的范围是连续的;在经常需要排序的列上创建索引,因为索引已经排序,这样查询可以利用索引的排序,加快排序查询时间;在经常使用在WHERE子句中的列上面创建索引,加快条件的判断速度。

    同样,对于有些列不应该创建Oracle数据库索引。一般来说,不应该创建索引的的这些列具有下列特点:第一,对于那些在查询中很少使用或者参考的列不应该创建索引。这是因为,既然这些列很少使用到,因此有索引或者无索引,并不能提高查询速度。

    相反,由于增加了索引,反而降低了系统的维护速度和增大了空间需求。第二,对于那些只有很少数据值的列也不应该增加索引。这是因为,由于这些列的取值很少,例如人事表的性别列,在查询的结果中,结果集的数据行占了表中数据行的很大比例,即需要在表中搜索的数据行的比例很大。

    增加索引,并不能明显加快检索速度。第三,对于那些定义为text, image和bit数据类型的列不应该增加索引。这是因为,这些列的数据量要么相当大,要么取值很少。第四,当修改性能远远大于检索性能时,不应该创建索引。

    这是因为,修改性能和检索性能是互相矛盾的。当增加索引时,会提高检索性能,但是会降低修改性能。当减少索引时,会提高修改性能,降低检索性能。因此,当修改性能远远大于检索性能时,不应该创建Oracle数据库索引。

分享到:
评论

相关推荐

    Oracle数据库管理员技术指南

    1.6.1 利用 Oracle 安装程序创建数据库 1.6.2 使用安装程序创建数据库的注意 事项 1.6.3 怎样建立自己的定制数据库创建 脚本 1.6.4 如何从已有数据库克隆数据库 1.6.5 怎样利用 Database Configuration ...

    关于索引概念\特点\优点\缺点\分类\使用

    简要概述索引的概念\特点\优点\缺点\分类\使用

    Oracle_索引

    介绍数据库索引知识、索引分类及优缺点、索引原理、索引优化

    Oracle建表语句demo(建表语句、索引、序列)

    提供了一个Oracle数据库建表语句的完整示例代码,用于演示如何在Oracle环境中创建一个结构化的数据表。 资源优点: 完整性展示:DEMO提供了从基础建表到复杂约束(如外键、自增主键)等实际生产场景所需的完整SQL...

    一文了解华为Gauss数据库:开发历程、OLTP&OLAP特点、行式&列式存储,及与Oracle和AWS对比…

    Oracle、微软的数据库之所以能长久不衰,一方面在于其强大的技术开发和产品升级迭代能力,另一方面在于其对数据库的Knowhow理解足够深,这个是其他厂商短期难以超越的。华为在数据库领域逐步取得新的突破。2019年...

    基本的索引原理 对初学者来说,最困难的就是如何找到那些可以填补最主要差距的信息,以及如何了解Oracle的索引功能。本章就是服务于这个目的。

    Oracle提供了大量索引选项。知道在给定条件下使用哪个选项对于一个应用程序的性能来说非常重要。一个错误的选择可能会引发死锁,并导致数据库性能急剧下降或进程终止。而如果做出正确的选择,则可以合理使用资源,使...

    Oracle课件.pdf

    2. Oracle介绍与安装 2.1 Oracle安装 2.2 Oracle 默认用户 2.3 服务器连接 3. PL/SQL Developer工具 4. Oracle用户和权限 4.1用户和权限 4.2角色 第2章 SQL数据操作和查询 1. SQL简介 2. 查询 2.1查询...

    Oracle8i_9i数据库基础

    第一章 Oracle数据库基础 23 §1.1 理解关系数据库系统(RDBMS) 23 §1.1.1 关系模型 23 §1.1.2 Codd十二法则 24 §1.2 关系数据库系统(RDBMS)的组成 24 §1.2.1 RDBMS 内核 24 §1.2.2 数据字典概念 25 §1.3 ...

    oracle关系型数据库

    其中包括索引原理,创建索引,视图,触发器,sql中的函数,以及简述各种优缺点和区别等等

    JDBC 3.0数据库开发与设计

    2.1.3 Oracle 数据库的基本说明及其使用简介 2.1.4 MySQL的安装及使用简介 2.2 使用JDBC连接数据库 2.2.1 SQLJ基本知识 2.2.2 用PL/SQL和Java建立应用程序的基本知识 2.2.3 PL/SQL和Java的特性 2.2.4 PL/SQL和...

    oracle学习文档 笔记 全面 深刻 详细 通俗易懂 doc word格式 清晰 连接字符串

    ORACLE数据库系统是美国ORACLE公司(甲骨文)提供的以分布式数据库为核心的一组软件产品,是目前最流行的客户/服务器(CLIENT/SERVER)或B/S体系结构的数据库之一。  拉里•埃里森  就业前景 从就业与择业的...

    sql总结.doc

    (2)Mysql中搜索引擎Innodb(聚簇索引)和Mysiam(非聚簇索引)都采用B+,oracle也采用B+树实现 注:聚簇索引:一张表只能建立一个聚簇索引,以主键建立索引。聚簇索引包括主键索引和二级索引(二级索引是在对非主键...

    mysql和oracle的区别小结(功能性能、选择、使用它们时的sql等对比)

    一、并发性 ...oracle使用行级锁,对资源锁定的粒度要小很多,只是锁定sql需要的资源,并且加锁是在数据库中的数据行上,不依赖与索引。所以oracle对并发性的支持要好很多。 二、一致性 oracle: oracle支持s

    Oracle面试题 oracle学习题

    1. 解释冷备份和热备份的不同点以及各自的优点 2. 你必须利用备份恢复数据库,但是你没有控制文件,该如何解决问题呢? 3. 如何转换init.ora到spfile? 4. 解释data block , extent 和 segment的区别(这里建议用...

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

    【设计目的】 数据库课程设计是在学生系统地学习了《数据库系统原理》课程后, 按照关系型数据库的基本远离,综合运用所学的知识,设计开发一个小 型的数据库管理信息系统,通过对一个实际问题的分析、设计与实现, ...

    精通SQL 结构化查询语言详解

    2.3.2 Oracle数据库体系结构  2.3.3 Oracle数据库系统结构 2.3.4 使用SQL*Plus执行SQL语句 2.4 PL/SQL简介  2.4.1 PL/SQL的特点  2.4.2 PL/SQL程序结构 第3章 创建、修改和删除表 3.1 表的基础知识  ...

    【mysql学习第12天】索引的优化示例

    文章目录数据库的分类基于磁盘的数据库的缺点改进方法缓存池的大小决定因素应用索引进行查询具体示例1、索引的应用2、利用索引进行排序优化索引1、为索引列选择合适的数据类型2、一般原则虽然建了索引,但是不会走...

    精通SQL--结构化查询语言详解

    2.3.1 oracle数据库软件组成 29 2.3.2 oracle数据库体系结构 29 2.3.3 oracle数据库系统结构 30 2.3.4 使用sql*plus执行sql语句 31 2.4 pl/sql简介 32 2.4.1 pl/sql的特点 32 2.4.2 pl/sql程序结构 33 第3章 ...

    数据库物理设计.pdf

    ⼀、选择哪种数据库: Oracle和SqlServer是商业数据库。(适合企业级项⽬) mysql和pgsql是开源数据库。(适合互联⽹项⽬) ⼆、表及字段的命名规范: 1、可读性原则。通过⼤⼩写格式化名字。如CustAddress⽽不是...

Global site tag (gtag.js) - Google Analytics