MySQL 里给表添加索引

0. 引言

在 MySQL 里给表添加索引很常见,你可以根据字段的用途来决定加什么类型的索引。下面我整理了几种常用方法:

1. 普通索引(Index)

适合经常作为查询条件(WHERE)的字段:

plain 复制代码
CREATE INDEX idx_name ON files(name);

2. 唯一索引(Unique Index)

保证字段值不重复,例如 uuid

plain 复制代码
CREATE UNIQUE INDEX idx_uuid ON files(uuid);

3. 组合索引(Composite Index)

如果你经常用多个字段联合查询,比如 type + over_time

plain 复制代码
CREATE INDEX idx_type_overTime ON files(type, over_time);

4. 主键(Primary Key)

一个表只能有一个主键:

plain 复制代码
id BIGINT AUTO_INCREMENT PRIMARY KEY

5. 全文索引(Fulltext Index)

适合对长文本做模糊搜索(例如文件描述):

plain 复制代码
CREATE FULLTEXT INDEX idx_file_name ON files(name);

6. 修改表时添加索引

如果你想在 ALTER TABLE 里加:

plain 复制代码
ALTER TABLE files ADD INDEX idx_name(name);
ALTER TABLE files ADD UNIQUE idx_uuid(uuid);

7. 删除索引

plain 复制代码
DROP INDEX idx_name ON files;

建议:

  • 如果 uuid 你要保证唯一,建唯一索引:
  • 如果 name 经常用来查找,可以加普通索引:
  • 如果 over_time 经常用来清理过期,可以加索引:
相关推荐
百结2145 小时前
Mysql数据库操作
数据库·mysql·oracle
keep one's resolveY5 小时前
时区问题解决
数据库
Leinwin5 小时前
OpenClaw 多 Agent 协作框架的并发限制与企业化规避方案痛点直击
java·运维·数据库
qq_417695055 小时前
机器学习与人工智能
jvm·数据库·python
漫随流水5 小时前
旅游推荐系统(view.py)
前端·数据库·python·旅游
ego.iblacat5 小时前
MySQL 服务基础
数据库·mysql
Maverick067 小时前
Oracle Redo 日志操作手册
数据库·oracle
攒了一袋星辰7 小时前
高并发强一致性顺序号生成系统 -- SequenceGenerator
java·数据库·mysql
W.D.小糊涂8 小时前
gpu服务器安装windows+ubuntu24.04双系统
c语言·开发语言·数据库
云贝教育-郑老师8 小时前
【OceanBase 的多租户架构是怎样的?有什么优势?】
数据库·oceanbase