常见的数据库4种索引类型介绍

一、MySQL索引类型

1.1 主键索引(PRIMARY KEY)

主键索引是一种特殊的索引,用于唯一标识表中的每一行数据。在MySQL中,为表定义主键时会自动创建主键索引。

ALTER TABLE `table_name` ADD PRIMARY KEY (`column`)

关于主键索引,可以通过以下SQL语句来查看:

SHOW INDEX FROM table_name

1.2 唯一索引(UNIQUE)

唯一索引要求索引列的值必须是唯一的,但允许有空值。

ALTER TABLE `table_name` ADD UNIQUE (`column`)

1.3 普通索引(INDEX)

普通索引是最基本的索引类型,没有特殊限制。

ALTER TABLE `table_name` ADD INDEX index_name (`column`)

1.4 全文索引(FULLTEXT)

全文索引仅可用于MyISAM表,用于在较大的数据中检索文本信息,生成全文索引可能耗时较长。

ALTER TABLE `table_name` ADD FULLTEXT (`column`)

1.5 组合索引

组合索引是包含多列的索引,相对于单列索引,组合索引可以提高查询效率。遵循”最左前缀”原则。

ALTER TABLE `table_name` ADD INDEX index_name (`column1`, `column2`, `column3`)
常见的数据库4种索引类型介绍

二、MySQL各种索引区别

2.1 唯一索引(UNIQUE)

与普通索引相似,但索引列的值必须唯一,允许有空值。

2.2 主键索引(PRIMARY)

主键索引是特殊的唯一索引,不允许有空值。

2.3 普通索引(INDEX)

最基本的索引类型,没有特殊限制。

2.4 全文索引(FULLTEXT)

仅可用于MyISAM表,用于检索文本信息,生成全文索引较耗时。

2.5 组合索引

为了提高MySQL效率,建议使用组合索引,遵循”最左前缀”原则。

举例:在会员卡系统中,可以使用主键索引、普通索引、唯一索引和全文索引来提高查询效率。

CREATE UNIQUE INDEX index_name ON table_name(column_name列表)

删除索引的语法:

DROP INDEX index_name ON tableName

通过合理选择不同类型的索引,可以优化数据库的查询性能,提升系统的响应速度。