mysql的几种索引
mysql索引的介绍可以mysql官网的词汇表中搜索:
https://dev.mysql.com/doc/refman/8.0/en/glossary.html
mysql可以在表的一列、或者多列上创建索引,索引的类型可以选择,如下:
普通索引(KEY)
普通索引可以提高查询效率。在表的一列、或者多列上创建索引。
每个表可以创建多个普通索引。
例如,下面示例,在price列上创建了一个普通索引。
唯一索引(unique index)
在表的一列、或者多列上创建唯一索引。如果是在一列上创建,那么该列的值在表中是唯一的;如果是在多列上创建,那么多列的组合值在表中是唯一的。允许出现NULL值。
在一个表上可以创建多个唯一索引。
例如,下面示例,在表的type和pdate两列上创建了一个唯一索引。
主键(primary key)
在一列、或者多列上创建主键,用于唯一标识表中的一行数据。
主键首先必须是一个唯一索引,并且不能包含NULL 值。
在一个表上只能创建一个主键。
InnoDB存储引擎要求每个表有一个主键,也称为簇索引( clustered index 或者 cluster index)。基于主键列的值来组织表的存储。
例如,下面示例,在表的自增长的id列上创建了主键:
全文索引(FULLTEXT index)
全文索引是一种特殊的索引,用于高效的全文检索。
最初,全文索引只能用于 MyISAM表,但从 MySQL 5.6.4开始,在InnoDB 表上也能使用了。
例如,下面示例中,在description列上创建了全文索引:
空间索引(SPATIAL index)
空间索引是一种用于多维信息数据的索引,多维数据如地理坐标、矩形、多边形。
空间索引使用R-tree结构。
支持index_type选项的存储引擎的索引特性
https://dev.mysql.com/doc/refman/8.0/en/create-index.html