我是一个delphi初学者,我想问一下高手们什么是索引????

解决方案 »

  1.   

    索引是对数据库表中一个或多个列(例如,employee 表的姓氏 (lname) 列)的值进行排序的结构。如果想按特定职员的姓来查找他或她,则与在表中搜索所有的行相比,索引有助于更快地获取信息。索引提供指针以指向存储在表中指定列的数据值,然后根据指定的排序次序排列这些指针。数据库使用索引的方式与使用书的目录很相似:通过搜索索引找到特定的值,然后跟随指针到达包含该值的行。
      

  2.   

    一点补充。1。 索引可以加快select的速度,但同时会降低update和insert的速度,索引不要建的太多,一般一个表2-3个索引合适。
    2。 索引建立以后并不一定会启用,这要看在where语句中是否用到单一索引的字段或复合索引的首字段。
    如:有表emp(empno,dept);
      如果你只是select * from emp;索引不会启用,若用select * from emp where empno = '100';这时索引才会启用。
    3。索引是否能加快查询的速度,要看实际情况。
       例如,如果emp表有90万条记录,而dept只有三种可能值,即,1,2,3。
    并且均匀分布。这时我要查dept = 3的一条记录。全局扫描顺序
    empno dept
    empno dept
    ....
    可能我扫描到第六次就找到了。
      如果我要用建在dept上的索引,而索引是排过序的,扫描顺序
    dept
    dept
    dept
    ...
    ...
    dept= 3的记录排在60万以后,我可能要扫描60万次才能找到记录。对于这种情况,有些dbms会自动判断而不启用索引,而有些不行。
      综上所述,用索引要根据实际情况,不要盲目使用。