mysql索引的创建与设计原则
索引的声明与使用
索引的分类
mysql的索引包括普通索引,唯一索引、全文索引、单列索引、多列索引和空间索引等。
- 从功能上说,索引主要有4种,分为普通索引、唯一索引、主键索引、全文索引
 - 按照物理实现方式:聚簇索引和非聚簇索引。
 - 作用字段个数:单列索引和联合索引。
 
普通索引
在创建普通索引时,不附加任何限制条件,只是用于提高查询效率。这类索引可以创建在任何数据类型中,其值是否唯一和非空,要由字段本身的完整性约束条件决定。建立索引后,可以通过索引进行查询。例如,在student的字段name上建立一个普通索引,查询记录时就可以根据该索引进行查询。
唯一性索引
使用unique参数可以设置索引为唯一性索引,在创建唯一索引时,限制该索引的值必须为你的,但是允许有空值,在一张表里面可以有多个唯一索引。
主键索引
主键索引就是一种特殊的唯一性索引,在唯一索引的基础上增加了不为空的约束,也就是not null+UNIQUE,一张表里最多只有一个主键索引。
注意⚠️:这是由于主键索引的物理实现方式决定的,因为数据存储在文件中智能按照一种顺序进行存储。
单列索引
在表中的单个字段上创建索引,单列索引只根据该字段进行索引。单列索引可以时普通索引,也可以时唯一性索引,还可以是全文索引。只要保证该索引只对应一个字段即可。一个表可以有多个单列索引。
多列索引
多列索引是在表的多个字段组合上创建一个索引。该索尼指向创建时对应的多个字段,可以通过这几个字段进行查询,但是只有查询条件中使用了这些字段中的第一个字段才会被使用。使用组合索引时遵循最左前缀集合。一个多列索引idx_id_name_gender,只有在查询条件中使用了字段id时该索引才会被使用。
全文索引
全文索引是目前搜索引擎使用的一种关键技术。它能够利用分词技术等多种算法智能分析出文本文字中关键词的频率和重要性,然后按照一定的算法规则智能地筛选出来我们想要的搜索结果。全文索引非常适合大型数据集,对于小的数据集,它的用处比较小。
使用参数fulltext可以设置索引为全文索引。在定义索引的裂伤支持值的全文查找,允许在这些索引列中插入重复值和空值。全文索引只能创建在char、varchar和text类型及其列类型的字段上,查询数据量较大的字符串类型的字段时,使用全文索引可以提高查询速度。
- 全文索引分为两种类型:自然语言的全文索引和布尔全文索引。
 
本文来自博客园,作者:King-DA,转载请注明原文链接:https://www.cnblogs.com/qingmuchuanqi48/articles/16743602.html
                    
                
                
            
        
浙公网安备 33010602011771号