主键索引就是聚集索引MySQL索引类型

之前松哥在前面的文章中介绍MySQL的索引时,有小伙伴表示被概念搞晕了,主键索引、非主键索引、聚簇索引、非聚簇索引、二级索引、辅助索引等等,今天咱们就来捋一捋这些概念。

1.按照功能划分

按照功能来划分,索引主要有四种:

普通索引唯一性索引主键索引全文索引

普通索引就是最最基础的索引,这种索引没有任何的约束作用,它存在的主要意义就是提高查询效率。

普通索引创建方式如下:

CREATETABLE`user`(`id`int(11)unsignedNOTNULLAUTO_INCREMENT,`name`varchar(64)DEFAULTNULL,PRIMARYKEY(`id`),KEY`name`(`name`))ENGINE=InnoDBAUTO_INCREMENT=4DEFAULTCHARSET=utf8mb4;

name字段就是一个普通索引(括号外面的是索引名,里边的是索引的字段)。

唯一性索引则在普通索引的基础上增加了数据唯一性的约束,一张表中可以同时存在多个唯一性索引,唯一性索引创建方式如下:

CREATETABLE`user`(`id`int(11)unsignedNOTNULLAUTO_INCREMENT,`name`varchar(64)DEFAULTNULL,PRIMARYKEY(`id`),UNIQUEKEY`name`(`name`))ENGINE=InnoDBAUTO_INCREMENT=4DEFAULTCHARSET=utf8mb4;

name字段就是唯一性索引。

主键索引则是在唯一性索引的基础上又增加了不为空的约束(换言之,添加了唯一性索引的字段,是可以包含NULL值的),即NOTNULL+UNIQUE,一张表里最多只有一个主键索引,当然一个主键索引中可以包含多个字段。

前面两个例子中都有主键索引的创建方式,我这里就不再列举了。

全文索引其实我们很少在MySQL中用,如果项目中有做全文索引的需求,一般可以通过Elasticsearch或者Solr来做,目前比较流行的就是Elasticsearch了,松哥之前也录过专门的视频,


转载请注明:http://www.aierlanlan.com/grrz/393.html

  • 上一篇文章:
  •   
  • 下一篇文章: 没有了