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 经常用来清理过期,可以加索引:
相关推荐
昊昊该干饭了2 小时前
一个真实查询需求如何从表设计走到高效 SQL
数据库·sql
Ha_To2 小时前
2026.1.20 SQL Server命令
数据库
智在碧得3 小时前
碧服打造DataOps全链路闭环,定义大数据工程化发布新标杆
大数据·网络·数据库
IvorySQL3 小时前
PostgreSQL 性能:云端与本地的延迟分析
数据库·postgresql
wangbing11253 小时前
分组取前几位
数据库
给我来一根4 小时前
用户认证与授权:使用JWT保护你的API
jvm·数据库·python
林鸿群4 小时前
ubuntu 26.04 安装mysql-server
linux·mysql·ubuntu
_F_y4 小时前
MySQL表的操作
android·数据库·mysql
SmartBrain4 小时前
Agent 知识总结
服务器·数据库·笔记