索引的分类 MySQL的索引包括普通索引、唯一性索引、全文索引、单列索引、多列索引和空间索引等。
从 功能逻辑 上说,索引主要有 4 种,分别是
普通索引、唯一索引、主键索引、全文索引
按照 物理实现方式 ,索引可以分为 2 种:
聚簇索引和非聚簇索引
按照 作用字段个数 进行划分,分成
单列索引和联合索引
【1普通索引】
在创建普通索引时,不附加任何限制条件,只是用于提高查询效率,这类索引可以创建在任何数据类型中,其值是否唯一和非空,要由字段本身的完整性约束条件决定。建立索引后,可以通过索引进行查询。例如,在表student的字段name上建立一个普通索引,查询记录时就可以根据索引进行查询
【2唯一索引】
使用unique参数可以设置索引为唯一索引,在创建唯一索引时,限制该索引的值必须是唯一的,但允许有空值,在一张数据表里面可以有多个唯一索引
例如,在表student的字段email中创建唯一索引,那么字段email值就必须是唯一的,通过唯一索引,可以更快地确定某条记录
【3主键索引】
逐渐索引就是一种特殊的唯一性索引,在唯一索引的基础上增加了不为空的约束,一张表中最多只有一个唯一索引。这是由逐渐索引的物理实现方式决定的,因为数据存储在文件中只能按照一种顺序进行存储
【4单列索引】
在表中的某个字段上创建索引,单列索引只根据该字段进行索引,单列索引可以使普通索引,也可以使唯一性索引,还可以使全文索引。只要保证该索引只对应一个字段即可。一个表可以多个单列索引
【5多列(组和、联合)索引】
多列索引时在表的多个字段上创建一种索引。该索引指向创建时对应的多个字段,可以通过这几个字段进行查询,但是只有查询条件中使用了这些字段中的第一个字段时才会被使用。例如,在表中的字段id、name和gender上创建一个多列索引idx_id_name_gender,只有在查询条件中使用了字段id时该索引才会被使用,使用组和索引时遵循最左边前缀组和
【6全文索引】
全文索引(也称全文检索)是目前所有引擎使用的一种关键技术,它能够利用分词技术等多种算法智能分析出文本文字中关键词的频率和重要性,然后按照一定的短发规则智能地筛选出我们想要是搜索结果,前文索引非常适合大型数据集,对于小的数据集,他的用处比较小。
使用参数fulltext可以设置索引为全文索引。在定义索引的列上支持值的全文查找,允许这些索引列中插入重复值和空值。全文索引只能创建在char、varchar、text类型上,查询数据量较大的字符串类型的字段时,使用全文索引可以提高查询效率,

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐