什么是MySQL索引?

MySQL索引是帮助MySQL高效获取数据的数据结构。

索引的主要作用有:

  1. 提高查询速度:索引可以避免全表扫描,快速定位到数据。
  2. 保证数据的唯一性:可以在创建索引时指定UNIQUE,实现单列或组合列唯一性约束。
  3. 可以加速表与表之间的连接查询。
  4. 可以在排序时使用索引代替文件扫描,加快排序速度。

MySQL支持的索引类型有:

  1. PRIMARY KEY:主键索引,值必须唯一,只能有一个。
  2. UNIQUE KEY:唯一索引,值必须唯一,可以有多个。
  3. INDEX:普通索引,值可重复。
  4. FULLTEXT:全文索引,用于全文搜索。
  5. 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);