MySQL索引是帮助MySQL高效获取数据的数据结构。
索引的主要作用有:
- 提高查询速度:索引可以避免全表扫描,快速定位到数据。
- 保证数据的唯一性:可以在创建索引时指定UNIQUE,实现单列或组合列唯一性约束。
- 可以加速表与表之间的连接查询。
- 可以在排序时使用索引代替文件扫描,加快排序速度。
MySQL支持的索引类型有:
- PRIMARY KEY:主键索引,值必须唯一,只能有一个。
- UNIQUE KEY:唯一索引,值必须唯一,可以有多个。
- INDEX:普通索引,值可重复。
- FULLTEXT:全文索引,用于全文搜索。
- SPATIAL:空间索引,用于地理空间数据类型。
示例:
#创建主键索引
CREATE TABLE users (
id INT PRIMARY KEY,
name VARCHAR(20)
);
#创建唯一索引
CREATE TABLE users (
id INT,
name VARCHAR(20),
UNIQUE (name)
);
#创建普通索引
CREATE TABLE users (
id INT,
name VARCHAR(20),
INDEX (name)
);
#在已有表上创建全文索引
CREATE TABLE users (
id INT,
name VARCHAR(20),
bio TEXT
);
ALTER TABLE users ADD FULLTEXT(bio);