日期:2014-05-16  浏览次数:20545 次

数据库基础 之 “索引”

         

         索引是对数据库表中一列或多列的值进行排序的一种结构,使用索引可快速访问数据库表中的特定信息。数据库索引好比是一本书前面的目录,能加快数据库的查询速度。

        例如这样一个查询:select * from table1 whereid=44。如果没有索引,必须遍历整个表,直到ID等于44的这一行被找到为止;有了索引之后(必须是在ID这一列上建立的索引),直接在索引里面找44(也就是在ID这一列找),就可以得知这一行的位置,也就是找到了这一行。可见,索引是用来定位的。 可见建立索引的目的是加快对表中记录的查找或排序。

       进行索引的必要

       如果在查询时常用类似以下的语句:

   SELECT * FROM mytable WHERE category_id=1;

  最直接的应对之道,是为category_id建立一个简单的索引:

  CREATEINDEX  mytable_categoryid  ON  mytable  (category_id);

  如果有不止一个选择条件呢?例如:

  SELECT* FROM  mytable  WHERE  category_id=1  AND  user_id=2;

        我们首先想到的可能是,再给user_id建立一个索引。这不是一个最佳的方法。可以建立多重的索引。

         CREATEINDEX mytable_categoryid_userid ON mytable (category_id,user_id);

       那索引又有哪些种类呢?

       一般来说分类方式不同,种类也就不同。