天天看点

MySQL 索引的分类

<dl><dd>

mysql的索引包括普通索引、唯一性索引、全文索引、单列索引、多列索引和空间索引等。本小节将详细讲解这几种索引的含义和特点。

1.普通索引

在创建普通索引时,不附加任何限制条件。这类索引可以创建在任何数据类型中,其值是否唯一和非空由字段本身的完整性约束条件决定。建立索引以后,查询时可以通过索引进行查询。例如,在student表的stu_id字段上建立一个普通索引。查询记录时,就可以根据该索引进行查询。

2.唯一性索引

使用unique参数可以设置索引为唯一性索引。在创建唯一性索引时,限制该索引的值必须是唯一的。例如,在student表的stu_name字段中创建唯一性索引,那么stu_name字段的值就必需是唯一的。通过唯一性索引,可以更快速地确定某条记录。主键就是一种特殊唯一性索引。

3.全文索引

使用fulltext参数可以设置索引为全文索引。全文索引只能创建在char、varchar或text类型的字段上。查询数据量较大的字符串类型的字段时,使用全文索引可以提高查询速度。例如,student表的information字段是text类型,该字段包含了很多的文字信息。在information字段上建立全文索引后,可以提高查询information字段的速度。mysql数据库从3.23.23版开始支持全文索引,但只有myisam存储引擎支持全文检索。在默认情况下,全文索引的搜索执行方式不区分大小写。但索引的列使用二进制排序后,可以执行区分大小写的全文索引。

4.单列索引 www.2cto.com

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

5.多列索引

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

6.空间索引

使用spatial参数可以设置索引为空间索引。空间索引只能建立在空间数据类型上,这样可以提高系统获取空间数据的效率。mysql中的空间数据类型包括geometry和point、linestring和polygon等。目前只有myisam存储引擎支持空间检索,而且索引的字段不能为空值。对于初学者来说,这类索引很少会用到

ps: mysql创建索引原则

http://blog.csdn.net/csdnones/article/details/50412603

ps: mysql创建索引

http://blog.csdn.net/csdnones/article/details/50265295

</dd></dl>