精华内容
下载资源
问答
  • 物理索引缺点 建立索引效率低,只能建一个。  更有说服力的:(转)  为什么要创建索引呢?这是因为,创建索引可以大大提高系统的性能。第一,通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性。第二...
    数据库的索引分为:聚集索引,非聚集索引,唯一索引。
    

      优点:方便了查询,在数据量大时排序更易查询,

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

      更有说服力的:(转)

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

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

      索引是建立在数据库表中的某些列的上面。因此,在创建索引的时候,应该仔细考虑在哪些列上可以创建索引,在哪些列上不能创建索引。一般来说,应该在这些列上创建索引,例如:在经常需要搜索的列上,可以加快搜索的速度;在作为主键的列上,强制该列的唯一性和组织表中数据的排列结构;在经常用在连接的列上,这些列主要是一些外键,可以加快连接的速度;在经常需要根据范围进行搜索的列上创建索引,因为索引已经排序,其指定的范围是连续的;在经常需要排序的列上创建索引,因为索引已经排序,这样查询可以利用索引的排序,加快排序查询时间;在经常使用在WHERE子句中的列上面创建索引,加快条件的判断速度。

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

    展开全文
  • oracle索引优缺点分析

    千次阅读 2012-02-01 10:31:02
    以下的文章主要是对Oracle数据库索引的优点与缺点的介绍,如果你对Oracle数据库索引的优点与缺点想有所了解的话,你可以通过以下的文章对其的实际应用与功能有所了解 ,以下是文章的具体介绍……  以下的...

    转自:http://database.ctocio.com.cn/116/12198616.shtml
    以下的文章主要是对Oracle数据库索引的优点与缺点的介绍,如果你对Oracle数据库索引的优点与缺点想有所了解的话,你可以通过以下的文章对其的实际应用与功能有所了解


    ,以下是文章的具体介绍……


      以下的文章主要是对Oracle数据库索引的优点与缺点的介绍,如果你对Oracle数据库索引的优点与缺点想有所了解的话,你可以通过以下的文章对其的实际应用与功能有所


    了解,以下是文章的具体介绍。
     
      数据库的索引分为:聚集索引,非聚集索引,唯一索引。
     
      优点:方便了查询,在数据量大时排序更易查询
     
      缺点:查询时需要进行重新排序,减少了效率。物理索引缺点 建立索引效率低,只能建一个
     
      更有说服力的:
     
      为什么要创建索引呢?这是因为,创建索引可以大大提高系统的性能。
     
      第一,通过创建唯一性索引,可以保证Oracle数据库表中每一行数据的唯一性。
     
      第二,可以大大加快数据的检索速度,这也是创建索引的最主要的原因。
     
      第三,可以加速表和表之间的连接,特别是在实现数据的参考完整性方面特别有意义。
     
      第四,在使用分组和排序子句进行数据检索时,同样可以显着减少查询中分组和排序的时间。
     
      第五,通过使用索引,可以在查询的过程中,使用优化隐藏器,提高系统的性能。
     
      也许会有人要问:增加索引有如此多的优点,为什么不对表中的每一个列创建一个索引呢?这种想法固然有其合理性,然而也有其片面性。虽然,索引有许多优点,但是,


    为表中的每一个列都增加索引,是非常不明智的。这是因为,增加索引也有许多不利的一个方面。
     
      第一,创建索引和维护索引要耗费时间,这种时间随着数据量的增加而增加。
     
      第二,索引需要占物理空间,除了数据表占数据空间之外,每一个索引还要占一定的物理空间,如果要建立聚簇索引,那么需要的空间就会更大。
     
      第三,当对表中的数据进行增加、删除和修改的时候,索引也要动态的维护,这样就降低了数据的维护速度。
     
      索引是建立在Oracle数据库表中的某些列的上面。因此,在创建索引的时候,应该仔细考虑在哪些列上可以创建索引,在哪些列上不能创建索引。一般来说,应该在这些列


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


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


    度。
     
      同样,对于有些列不应该创建索引。一般来说,不应该创建索引的的这些列具有下列特点:第一,对于那些在查询中很少使用或者参考的列不应该创建索引。这是因为,既


    然这些列很少使用到,因此有索引或者无索引,并不能提高查询速度。
     
      相反,由于增加了索引,反而降低了系统的维护速度和增大了空间需求。第二,对于那些只有很少数据值的列也不应该增加索引。这是因为,由于这些列的取值很少,例如


    人事表的性别列,在查询的结果中,结果集的数据行占了表中数据行的很大比例,即需要在表中搜索的数据行的比例很大。
     
      增加索引,并不能明显加快检索速度。第三,对于那些定义为text, image和bit数据类型的列不应该增加索引。这是因为,这些列的数据量要么相当大,要么取值很少。第


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


    能远远大于检索性能时,不应该创建索引。
     
      oracle数据库可以说是优点大于缺点,缺点有待进一步的改善,争取把oracle数据库做的尽善尽美。
    展开全文
  • 各种Oracle索引类型介绍

    千次阅读 2019-02-16 14:13:29
    Single column 单行索引 Concatenated 多行索引 Unique 唯一索引 NonUnique 非唯一索引 Function-based函数索引 Domain 域索引 物理上: Partitioned 分区索引 NonPartitioned 非分区索引 B...
    转自:https://www.cnblogs.com/langtianya/p/6655050.html
    逻辑上:
    Single column 单行索引
    Concatenated 多行索引
    Unique 唯一索引
    NonUnique 非唯一索引
    Function-based函数索引
    Domain 域索引
     
    物理上:
    Partitioned 分区索引
    NonPartitioned 非分区索引
    B-tree:
    Normal 正常型B树
    Rever Key 反转型B树 
    Bitmap 位图索引
     
    索引结构:
    B-tree:
    适合与大量的增、删、改(OLTP);
    不能用包含OR操作符的查询;
    适合高基数的列(唯一值多)
    典型的树状结构;
    每个结点都是数据块;
    大多都是物理上一层、两层或三层不定,逻辑上三层;
    叶子块数据是排序的,从左向右递增;
    在分支块和根块中放的是索引的范围;
    Bitmap:
    适合与决策支持系统;
    做UPDATE代价非常高;
    非常适合OR操作符的查询; 
    基数比较少的时候才能建位图索引;
     
    树型结构:
    索引头 
    开始ROWID,结束ROWID(先列出索引的最大范围)
    BITMAP
    每一个BIT对应着一个ROWID,它的值是1还是0,如果是1,表示着BIT对应的ROWID有值
    
    
    
    1. b-tree索引
    Oracle数据库中最常见的索引类型是b-tree索引,也就是B-树索引,以其同名的计算科学结构命名。CREATE 
    INDEX语句时,默认就是在创建b-tree索引。没有特别规定可用于任何情况。
    2. 位图索引(bitmap index)
    位图索引特定于该列只有几个枚举值的情况,比如性别字段,标示字段比如只有0和1的情况。
    3. 基于函数的索引
    比如经常对某个字段做查询的时候是带函数操作的,那么此时建一个函数索引就有价值了。
    4. 分区索引和全局索引
    这2个是用于分区表的时候。前者是分区内索引,后者是全表索引
    5. 反向索引(REVERSE)
    这个索引不常见,但是特定情况特别有效,比如一个varchar(5)位字段(员工编号)含值
    (10001,10002,10033,10005,10016..)
    这种情况默认索引分布过于密集,不能利用好服务器的并行
    但是反向之后10001,20001,33001,50001,61001就有了一个很好的分布,能高效的利用好并行运算。
    6.HASH索引
    HASH索引可能是访问数据库中数据的最快方法,但它也有自身的缺点。集群键上不同值的数目必须在创建HASH集群之前就要知道。需要在创建HASH集群的时候指定这个值。使用HASH索引必须要使用HASH集群。

    分类: sql+数据库性能优化,sql语句+数据库,区别对比

    展开全文
  • 以下的文章主要是对Oracle数据库索引的优点与缺点的介绍,如果你对Oracle数据库索引的优点与缺点想有所了解的话,你可以通过以下的文章对其的实际应用与功能有所了解,以下是文章的具体介绍。  数据库的索引...
    以下的文章主要是对Oracle数据库索引的优点与缺点的介绍,如果你对Oracle数据库索引的优点与缺点想有所了解的话,你可以通过以下的文章对其的实际应用与功能有所了解,以下是文章的具体介绍。


      数据库的索引分为:聚集索引,非聚集索引,唯一索引


      优点:方便了查询,在数据量大时排序更易查询


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


      更有说服力的:


      为什么要创建索引呢?这是因为,创建索引可以大大提高系统的性能。


      第一,通过创建唯一性索引,可以保证Oracle数据库表中每一行数据的唯一性。


      第二,可以大大加快数据的检索速度,这也是创建索引的最主要的原因。


      第三,可以加速表和表之间的连接,特别是在实现数据的参考完整性方面特别有意义。


      第四,在使用分组和排序子句进行数据检索时,同样可以显着减少查询中分组和排序的时间。第五,通过使用索引,可以在查询的过程中,使用优化隐藏器,提高系统的性能。


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


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


      第二,索引需要占物理空间,除了数据表占数据空间之外,每一个索引还要占一定的物理空间,如果要建立聚簇索引,那么需要的空间就会更大。


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


      索引是建立在Oracle数据库表中的某些列的上面。因此,在创建索引的时候,应该仔细考虑在哪些列上可以创建索引,在哪些列上不能创建索引。一般来说,应该在这些列上创建索引,例如:在经常需要搜索的列上,可以加快搜索的速度;


      在作为主键的列上,强制该列的唯一性和组织表中数据的排列结构;在经常用在连接的列上,这些列主要是一些外键,可以加快连接的速度;在经常需要根据范围进行搜索的列上创建索引,因为索引已经排序,其指定的范围是连续的;


      在经常需要排序的列上创建索引,因为索引已经排序,这样查询可以利用索引的排序,加快排序查询时间;在经常使用在WHERE子句中的列上面创建索引,加快条件的判断速度。


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


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


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


      这是因为,修改性能和检索性能是互相矛盾的。当增加索引时,会提高检索性能,但是会降低修改性能。当减少索引时,会提高修改性能,降低检索性能。因此,当修改性能远远大于检索性能时,不应该创建索引。
    展开全文
  • innodb表默认创建为聚簇索引,与oracle的索引组织表(iot)类似,页节点不存储rowid,而是存储数据本身,聚簇索引不是一种单独的索引类型,而是一种数据存储方式,也就是索引组织表 二级索引的叶节点存放了key键值...
  • Oracle索引类型-参考

    万次阅读 2014-04-30 17:05:59
    Oracle提供了大量索引选项。知道在给定条件下使用哪个选项对于一个应用程序的性能来说非常重要。一个错误的选择可能会引发死锁,并导致数据库性能急剧下降...下面讨论的索引类型: B树索引(默认类型) 位图索引 HASH
  • Mysql和Oracle索引简介

    2019-11-08 13:48:36
    数据库索引详解Mysql和Oracle索引简介什么是索引建立索引的有缺点:优点:缺点:索引类型创建索引删除索引普通索引唯一索引主键删除索引 Mysql和Oracle索引简介 本文主要解释了什么是索引,索引有什么作用以及为什么...
  • 数据库索引算法的优缺点

    千次阅读 2018-01-10 17:07:43
    当前测试的版本是Mysql 5.5.25只有BTreeHash两种索引类型,默认为BTree。Oracle或其他类型数据库中会有Bitmap索引(位图索引),这里作为比较也一起提供。  BTree索引 BTree(多路搜索树,并不是二叉的)是...
  • Oracle索引

    2018-08-12 22:26:36
    Oracle索引 索引:就是一个创建表上一列或多列的数据库对象。 索引是用于加速数据"存取"的数据对象。 合理的使用索引可以大大降低 i/o 次数,从而提高数据访问性能。 索引的特点: 优点: 提高表的...
  • 视图、索引、存储过程优缺点
  • 物理Oracle数据库索引缺点 建立索引效率低,只能建一个。  为什么要创建Oracle数据库索引呢?这是因为,创建索引可以大大提高系统的性能。第一,通过创建唯一性索引,可以保证数据库表中每...
  • 在创建索引时它就是默认的索引类型。B树索引可以是一个列的(简单)索引,也可以是组合/复合(多个列)的索引。B树索引最多可以包括32列。 在下图的例子中,B树索引位于雇员表的last_name列上。这个索引的二元高度为3;...
  • oracle索引

    2013-06-11 19:22:59
    本文转载自《超详细oracle教程》电子书. 16.1、索引  select * from user_indexes 查询...16.2、索引优缺点  建立索引的优点   1.大大加快数据的检索速度;   2.创建唯一性索引,保证数据库表中每一行数据的
  • 引言:大家都知道“效率”是数据库中非常重要的一个指标,如何提高效率大家可能都会想起索引,但索引又这么多种,什么场合应该使用什么索引呢?哪种索引可以提高我们的效率,哪种索引可以让我们的效率大大降低(有时...
  • 各种Oracle索引类型介绍 逻辑上: Single column 单行索引 Concatenated 多行索引 Unique 唯一索引 NonUnique 非唯一索引 Function-based函数索引 Domain 域索引 物理上: Partitioned 分区索引 NonPartitioned ...
  • Single column 单行索引 Concatenated 多行索引 Unique 唯一索引 NonUnique 非唯一索引 Function-based函数索引 Domain 域索引 物理上: Partitioned 分区索引 NonPartitioned 非分区索引 B-tree: Normal 正常型B...
  • 数据库位图索引优缺点

    千次阅读 2016-03-24 15:02:54
    数据库BTree索引、Hash索引、Bitmap位图索引的优缺点  (2016-01-05 17:13:40) 转载▼ ... 测试于:MySQL ...当前测试的版本是Mysql 5.5.25只有BTreeHash两种索引类型,默认为BTree。Oracle或其他类型
  • Oracle表分区详解(优缺点

    千次阅读 2017-08-18 10:21:13
    表分区的优缺点  4.表分区的几种类型及操作方法  5.对表分区的维护性操作. (1.) 表空间及分区表的概念 表空间:  是一个或多个数据文件的集合,所有的数据对象都存放在指定的表空间中,但主要存放的是
  • 引言:大家都知道“效率”是数据库中非常重要的一个指标,如何提高效率大家可能都会想起索引,但索引又这么多种,什么场合应该使用什么索引呢?哪种索引可以提高我们的效率,哪种索引可以让我们的效率大大降低(有时...
  • oracle 索引

    2012-09-10 11:18:21
    oracle 数据库自动使用维护索引索引分为:唯一索引,非唯一索引。 在定义主键或唯一约束时会自动创建唯一性索引。 2. 索引优点与缺点 优点:大大加快数据检索速度。 缺点索引需要占用物理空间。对...
  • Oracle索引原理

    千次阅读 2017-10-23 17:17:18
    oracle中的索引与mysql中的索引不一样,oracle索引是存储了索引列的值以及rowid值。而mysql索引分为聚集索引,非聚集索引。其中聚集索引只能有一个。 oracle索引的主要分为根,茎,叶子三部分。索引列值都是存放...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 28,861
精华内容 11,544
关键字:

oracle索引类型和优缺点