1、索引是在需要的时侯建,也是可有可无的,但它对提高select 的性能和库的性能有很大的好处
2、好处是提高select 的速度,统计的速度,你可以不作外键的一致性检查,而是通过程序保证数据更新的一致性。
3、索引不会在内存中,倒是一些小的经常访问的表可以把它放到内存中。
索引提高查询速度是因为它之中所存的是表中行的rowid 也就是物理地址,可以去直接访问该地址的数据,而不需一行行的扫描。
2、好处是提高select 的速度,统计的速度,你可以不作外键的一致性检查,而是通过程序保证数据更新的一致性。
3、索引不会在内存中,倒是一些小的经常访问的表可以把它放到内存中。
索引提高查询速度是因为它之中所存的是表中行的rowid 也就是物理地址,可以去直接访问该地址的数据,而不需一行行的扫描。
至于该怎么建和建在什么地方,这个话题比较大了,到WWW.CNOUG.ORG里去看看吧,有许多关于索引的话题的.
索引可能产生碎片,因为记录从表中删除时,相应也从表的索引中删除.表释放的空间可以再用,而索引释放的空间却不能再用.频繁进行删除操作的被索引的表,应当阶段性地重建索引,以避免在索引中造成空间碎片,影响性能.在许可的条件下,也可以阶段性地truncate表,truncate命令删除表中所有记录,也删除索引碎片.
索引不在内存中吗?经常使用的索引,应该在内存中吧?不然io操作浪费的时间也太多了。而且server内存中不是还有索引区吗?
为什么索引那么常用,还总要从disk上读取呢?
如果你看了DBA手册的话,那么就有一章专门讲解如何做索引,如何给索引分配表空间等等。
总之一句话,索引是加快查询速度的,是以空间换时间的做法。(自然,加快了查询速度,降低了插入和删除的速度)