温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

SQL查询如何加索引

发布时间:2026-09-01 09:08:11 来源:亿速云 阅读:100 作者:小樊 栏目:编程语言

在 SQL 中,“加索引”通常有两层含义:

  1. 建表时定义索引
  2. 已有表上添加索引

下面按常见数据库(MySQL / PostgreSQL / SQL Server)说明。


一、创建表时加索引

MySQL / PostgreSQL

CREATE TABLE user (
    id INT PRIMARY KEY,
    name VARCHAR(50),
    email VARCHAR(100),
    INDEX idx_name (name),
    UNIQUE INDEX idx_email (email)
);

SQL Server

CREATE TABLE users (
    id INT PRIMARY KEY,
    name VARCHAR(50),
    email VARCHAR(100)
);

CREATE INDEX idx_name ON users(name);
CREATE UNIQUE INDEX idx_email ON users(email);

二、已有表添加索引

MySQL

ALTER TABLE user
ADD INDEX idx_name (name);

-- 唯一索引
ALTER TABLE user
ADD UNIQUE INDEX idx_email (email);

-- 联合索引
ALTER TABLE orders
ADD INDEX idx_user_status (user_id, status);

或使用:

CREATE INDEX idx_name ON user(name);

PostgreSQL

CREATE INDEX idx_name ON users(name);

-- 联合索引
CREATE INDEX idx_order ON orders(user_id, status);

SQL Server

CREATE INDEX idx_name ON users(name);

三、常见索引类型

  • 普通索引:加速查询
  • 唯一索引(UNIQUE):防止重复值
  • 主键索引(PRIMARY KEY):唯一且非空
  • 联合索引:多列组合查询
  • 覆盖索引:索引包含查询所需字段

四、查看索引

MySQL

SHOW INDEX FROM user;

PostgreSQL

\d user

SQL Server

sp_helpindex 'users';

五、删除索引

-- MySQL / PostgreSQL
DROP INDEX idx_name ON user;

-- SQL Server
DROP INDEX user.idx_name;

六、加索引建议

✅ 常用于 WHEREJOINORDER BY 的字段
✅ 区分度高的字段更适合建索引
❌ 频繁更新的字段谨慎加索引
❌ 数据量小的表通常不需要索引

如果你有具体 SQL 或表结构,我可以直接帮你设计索引。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI