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 经常用来清理过期,可以加索引:
相关推荐
Navicat中国20 小时前
使用 Navicat 导入向导导入 Excel 数据时,系统提示导入成功,表中也能看到数据,但行数统计显示为 0,这是什么原因?
数据库·excel·导入
gmaajt21 小时前
Golang怎么做国际化多语言_Golang i18n教程【核心】
jvm·数据库·python
折哥的程序人生 · 物流技术专研21 小时前
从“卡死”到“秒过”:WMS销售数据跨库回填的极限优化之旅
数据库·机器学习·oracle
李可以量化21 小时前
DeepSeek 量化交易实战:用标准化提示词模板实现 AI 辅助交易决策
大数据·数据库·人工智能
maqr_11021 小时前
CSS如何利用Sass定义全局阴影方案_通过变量实现统一CSS风格
jvm·数据库·python
m0_6138562921 小时前
uni-app怎么做类似于美团的商家评价星级 uni-app五星评分组件制作【实战】
jvm·数据库·python
Irene19911 天前
大数据开发语境下,SQL 模式名,映射关系 - - 概念理解
大数据·数据库·sql
顾随1 天前
(二)kettle--输入与输出
javascript·数据库·kettle
2401_833033621 天前
如何修复固定定位头部容器中悬浮下拉菜单的错位问题
jvm·数据库·python
SelectDB1 天前
Doris & SelectDB for AI 实战:从基础 RAG 到知识图谱增强的完整实现
数据库·人工智能·数据分析