如何给 MySQL 表添加索引?添加索引的语法是什么?添加索引时需要考虑哪些因素(如字段类型、查询频率、索引选择性)?
给 MySQL 表添加索引需根据业务需求选择合适的索引类型,不同类型的索引语法不同,同时需综合评估字段特性、查询模式等因素,避免无效或过度索引。
一、添加索引的语法(按索引类型分类)
MySQL 支持多种索引类型,核心包括普通索引、唯一索引、主键索引、联合索引、前缀索引和全文索引,不同类型的语法需针对性使用,以下是具体示例(以 “user 表” 为例,表结构含 id、username、phone、age、create_time 字段):
-
普通索引(最基础,无唯一性约束)
用于加速普通查询,无特殊约束。语法有两种:- 直接创建:
CREATE INDEX idx_user_age ON user(age);
- ALTER 语句添加:
ALTER TABLE user ADD INDEX idx_user_age(age);
- 直接创建:
-
唯一索引(字段值唯一,允许 NULL)
适用于需保证字段唯一性的场景(如手机号),避免重复数据。
语法:CREATE UNIQUE INDEX idx_user_phone ON user(phone);
若插入重复 phone 值,MySQL 会抛出 “Duplic