为什么建立索引,才可以提高查询速度呢,各种索引有什么不同呢?

解决方案 »

  1.   

     to:liuyi8903,
      能说的更明白吗,比如,我有3张表,每个表里有三个做为查询结果的字段,那么
    就应该把这三张表里的做为查询条件的三个字段,都建成索引吗,这样的话,就是9个索引了,
    是不是太多了点呢?
      

  2.   

    当然不是越多越好啊,如果你是oltp环境,那么会影响到你的dml操作的.
    这个也要看具体的情况,index也要看返回的结果集,以及数据的分布情况的.只有合适的情况才有必要创建索引 .具体情况非常多, 所以建议你把实际的情况拿出来分析分析.
      

  3.   

    索引的意思就是,当一个字段有索引时,查询的时候oracle就会直接跳到字段的指定值附近,而不是遍历整个表,所以会提高查询速度
      

  4.   

    索引是ORACLE为了提高查询的速度引入的,它是按索引关键字的顺序存放记录也叫做数据结构。在索引记录中存有索引关键字和指向真正数据的指针。因为索引中只存关键字和指针所以索引的规模要比真正的表的规模小很多。这样对索引进行操作的I/O量要比对真正表进行操作要少很多。因为I/0操作是计算机的所有操作中最慢的,因此减少I/O操作就等于加快了查询的速度!在ORACLE中索引表是独立存放的,它可以存放在不同的磁盘,即使索引被删掉了也不会影响真正有数据的表。索引建完后,就由ORACLE系统自动维护,由系统自动决定什么时候使用这个索引,随然索引是独立存放的,但是当主表被删掉后该表所对应的索引也都会被自动删掉的。
    1、一般数据量很少的表基本不用建索引,因为效果不明显。
    2、建索引也要注意要查询的数据记录量占整个表的百分之多少,20%以上的建了也没啥意思的说
      
      

  5.   

    建议你看一下《Oracle 9i & 10g编程艺术:深入数据库体系结构》的关于索引的章节,看完之后应该会有所收获!
      

  6.   

    9楼的  我记得好像和你说的不大一样  大家讨论
    数据量大时index效果会比较明显
    当表格数据频繁插入删除时反而会影响性能
    因为index需要重新排序