首页/数据/SQL 速查/CREATE INDEX 基础写法
本包目录(311 条)
查询基础33 条连接与子查询40 条聚合与窗口函数54 条函数速查60 条
变更与事务52 条
性能与执行计划72 条

CREATE INDEX 基础写法

建索引的常规语法与命名:单列、复合列顺序、唯一索引与删除索引;大表操作前先查看现有索引避免重复。

SQL 速查数据更新于 2026-10-12

MySQL

MySQL
CREATE INDEX idx_user_created ON orders (user_id, created_at);
CREATE UNIQUE INDEX uk_email ON users (email);
-- 或写在 ALTER TABLE 里(可与其他变更合并)
ALTER TABLE orders ADD INDEX idx_status (status);

DROP INDEX idx_status ON orders;

PostgreSQL

PostgreSQL
CREATE INDEX idx_user_created ON orders (user_id, created_at);
CREATE UNIQUE INDEX uk_email ON users (email);
DROP INDEX idx_user_created;
命名统一前缀(idx_/uk_)+ 表名 + 列名,便于检索与治理
列顺序等值过滤列在前、范围与排序列在后
重复检查建前先 SHOW INDEX 或 \d 表名 查看已有索引

易错点

  • 建索引不带命名:自动生成的名字难以管理,后续治理与删除都费劲
  • 同列已有索引又建一条:重复索引增加写入成本,先查现有索引

数据来源与参考

  • MySQL 8.0 Reference Manual · CREATE INDEX Statement
  • PostgreSQL Documentation · CREATE INDEX
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌