索引

1、什么是索引

索引的作用就是提高对表中数据的查询速度。
如果将数据库比作一本书的话,那么索引就是这本书的目录。我们在查询数据的时候,不用翻完所有书的内容去查找,而是查询索引列。

2、索引的特点

索引有两种存储类型,B型树索引和哈希索引。InnoDB和MyISAM存储引擎用的是B树索引,MEMORY存储引擎支持B树索引和哈希索引两种。

优点:
就是提高查询的速度

缺点:
创建和维护索引需要消耗时间
索引需要占用物理空间,每一个索引都会占用一定的物理空间
增加删除和修改数据时,要动态的维护索引列,也要耗费时间

3、索引的分类

1) 普通索引

创建普通索引时,不需要附加任何限制条件。

2) 唯一性索引

使用 UNIQUE 参数可以设置索引为唯一性索引。在创建唯一性索引时,限制该索引的值必须是唯一的。

3) 全文索引

使用 FULLTEXT 参数可设置索引为全文索引。全文索引只能创建在 CHAR、VARCHAR或TEXT类型的字段上。而且,现在只有MyISAM存储引擎支持全文索引。

4) 单列索引

在表中的单个字段上创建索引。单列索引只根据该字段进行索引。单列索引可以是普通索引,也可以是唯一性索引,还可以是全文索引,但必须保证该索引只对应一个字段。

5) 多列索引

在表中的多个字段创建索引。可以通过这几个字段进行查询,但是,只有查询条件中使用了这些字段中的第一个字段时,索引才会被使用。比如说,我们在表中的id,name,sex这三个字段上建立一个多列索引,那么,只有在查询条件使用了id字段时,该索引才会被使用。

6) 空间索引

使用 SPATIAL 参数可以设置索引为空间索引。空间索引只能建立在空间数据类型上。也是只有MyISAM存储引擎支持空间索引,而且索引的字段不能为空值。

4、索引的设计原则

1) 选择唯一性索引

2) 为经常需要排序、分组和联合操作的字段建立索引

3) 为常作为查询条件的字段建立索引

4) 限制索引的数目

5) 删除不再使用或很少使用的索引

6) 数据量小的表最好不要建立索引

0%