1、索引是在需要的时侯建,也是可有可无的,但它对提高select 的性能和库的性能有很大的好处
2、好处是提高select 的速度,统计的速度,你可以不作外键的一致性检查,而是通过程序保证数据更新的一致性。
3、索引不会在内存中,倒是一些小的经常访问的表可以把它放到内存中。
 索引提高查询速度是因为它之中所存的是表中行的rowid 也就是物理地址,可以去直接访问该地址的数据,而不需一行行的扫描。

解决方案 »

  1.   

    索引在一个系统中是肯定有的,建索引的目的,无非是加快读取速度.
    至于该怎么建和建在什么地方,这个话题比较大了,到WWW.CNOUG.ORG里去看看吧,有许多关于索引的话题的.
      

  2.   

    索引既可以改善数据库性能,又可以保证列值的唯一性。
    索引可能产生碎片,因为记录从表中删除时,相应也从表的索引中删除.表释放的空间可以再用,而索引释放的空间却不能再用.频繁进行删除操作的被索引的表,应当阶段性地重建索引,以避免在索引中造成空间碎片,影响性能.在许可的条件下,也可以阶段性地truncate表,truncate命令删除表中所有记录,也删除索引碎片. 
      

  3.   

    to hrb_qiuyb(大森林):
       索引不在内存中吗?经常使用的索引,应该在内存中吧?不然io操作浪费的时间也太多了。而且server内存中不是还有索引区吗?
       为什么索引那么常用,还总要从disk上读取呢?
      

  4.   

    索引存储时也需要大量空间的,它不可能全部调入内存中。
    如果你看了DBA手册的话,那么就有一章专门讲解如何做索引,如何给索引分配表空间等等。
    总之一句话,索引是加快查询速度的,是以空间换时间的做法。(自然,加快了查询速度,降低了插入和删除的速度)