Question1 :  How many percentage data are duplicated . If only 10% and you are using index , the performance won't be slow

解决方案 »

  1.   

    您好!
    比如我的5000条数据记录的“name”字段是"中国程序员i",这个i是可变的数值,或者:所以记录全都相同,2000条“中国程序员”,3000条“美国软件工程”...其它字段完全相同.想请教的是这样的相同数据检索和5000条数据完全不一样的检索,它们的查询速度是不是很大差别?请指教一下,多谢了:-)
      

  2.   

    如果字段中的所有记录数据都是一样的,那这个字段就没有必要放在索引中,因为即使加到索引中,也无法提高检索速度。当然我认为你的索引不光光用到这个字段。索引的性能原则是索引字段(可以是复合索引)的非重复性越高,性能越好。非重复性 = select count(distinct col1..) / select count(*)。唯一索引的非重复性是100%,性能最高。
      

  3.   

    索引的性能原则是索引字段(可以是复合索引)的非重复性越高,性能越好。非重复性 = select count(distinct col1..) / select count(*)。唯一索引的非重复性是100%,性能最高。这样的结论从何而来,不是自己的体会把
      

  4.   

    这样的结论是从oracle advanced tuning一书中学来的,当然我可能翻译得不准确 :)
      

  5.   

    有大量重复的字段,应该建立位图索引,这样ORACLE查询时才会用到索引,如果是B TREE索引,则基本上都是全表扫描,对查询没有帮助。
      

  6.   

    但若建立位图索引的话,频繁的dml会死人的