1. PRIMARY KEY
CREATE TABLE table_name( id INT PRIMARY KEY, ... );
主键是一种特殊的唯一索引,在一个表中只能设置一个主键。它可以确保表的每一行都有一个唯一的标识符,并且在创建表时定义的顺序会影响主键的物理顺序。
2. UNIQUE KEY
CREATE TABLE table_name( id INT, email VARCHAR(63) UNIQUE, ... );
唯一键确保表中的每个值都是唯一的,它可以包含空值。在一个表中可以有多个唯一键。一般来说,唯一键的效率和主键差不多。
3. INDEX
CREATE TABLE table_name( ... INDEX index_name (col1, col2, ...), ... );
普通索引是最基本的索引类型,它不需要唯一性,可以包含重复值和空值。它可以包含一个或多个列,可以用来加速与单个列或多个列的WHERE子句匹配。
4. FULLTEXT
CREATE TABLE table_name( ... FULLTEXT index_name (col1, col2, ...), ... );
全文索引适用于文本比较长,并且需要对全文进行搜索的列。全文索引可以对列中的单词进行分词,并且可以忽略常用词语和词语的变形等。与普通索引不同,全文索引只能用于MyISAM表。