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存储引擎支持空间索引,而且索引的字段不能为空值。