mysql的几种索引

mysql可以在表的一列、或者多列上创建索引,索引的类型可以选择,如下:
mysql的几种索引_第1张图片

普通索引(KEY)

普通索引可以提高查询效率。在表的一列、或者多列上创建索引。
每个表可以创建多个普通索引。

例如,下面示例,在price列上创建了一个普通索引。
mysql的几种索引_第2张图片

唯一索引(unique index)

在表的一列、或者多列上创建唯一索引。如果是在一列上创建,那么该列的值在表中是唯一的;如果是在多列上创建,那么多列的组合值在表中是唯一的。允许出现NULL值。
在一个表上可以创建多个唯一索引。

例如,下面示例,在表的type和pdate两列上创建了一个唯一索引。
mysql的几种索引_第3张图片

主键(primary key)

在一列、或者多列上创建主键,用于唯一标识表中的一行数据。
主键首先必须是一个唯一索引,并且不能包含NULL 值。
在一个表上只能创建一个主键。
InnoDB存储引擎要求每个表有一个主键,也称为簇索引( clustered index 或者 cluster index)。基于主键列的值来组织表的存储。

例如,下面示例,在表的自增长的id列上创建了主键:
mysql的几种索引_第4张图片

全文索引(FULLTEXT index)

全文索引是一种特殊的索引,用于高效的全文检索。
最初,全文索引只能用于 MyISAM表,但从 MySQL 5.6.4开始,在InnoDB 表上也能使用了。

例如,下面示例中,在description列上创建了全文索引:
mysql的几种索引_第5张图片

空间索引(SPATIAL index)

空间索引是一种用于多维信息数据的索引,多维数据如地理坐标、矩形、多边形。
空间索引使用R-tree结构。

支持index_type选项的存储引擎的索引特性

https://dev.mysql.com/doc/refman/8.0/en/create-index.html

mysql的几种索引_第6张图片

mysql的几种索引_第7张图片

mysql的几种索引_第8张图片

mysql的几种索引_第9张图片

你可能感兴趣的:(mysql,数据库)