在MySQL中,索引是帮助数据库高效获取数据的数据结构。主要有以下四种类型:
- 主键索引(PRIMARY KEY):唯一标识表中每行数据的索引,不能有重复值。
- 唯一索引(UNIQUE KEY):确保索引列的每个值都是唯一的。
- 普通索引(INDEX):基本索引类型,没有唯一性的限制。
- 全文索引(FULLTEXT):用于全文检索,仅MyISAM存储引擎支持。
- 组合索引或复合索引:多列值组合成一个索引。
- 空间索引(SPATIAL):适用于地理空间数据类型,仅MyISAM支持。
- 主键索引示例:
CREATE TABLE users (
id INT NOT NULL,
username VARCHAR(15) NOT NULL,
PRIMARY KEY (id)
);
- 唯一索引示例:
CREATE TABLE users (
id INT NOT NULL,
email VARCHAR(15) NOT NULL,
PRIMARY KEY (id),
UNIQUE KEY unique_email (email)
);
- 普通索引示例:
CREATE TABLE users (
id INT NOT NULL,
username VARCHAR(15) NOT NULL,
INDEX index_username (username)
);
- 组合索引示例:
CREATE TABLE users (
id INT NOT NULL,
username VARCHAR(15) NOT NULL,
age INT NOT NULL,
PRIMARY KEY (id),
INDEX index_name_and_age (username, age)
);
在查询时,可以利用这些索引来加快查询速度,但同时也会增加数据库的存储成本和维护成本。应根据实际需求合理设计索引。