AI:
索引(Index)就像书的“目录/索引页”——把某些列按特定结构排好,查询时不用把整本表一页页翻,只需沿着索引迅速找到目标行的位置,从而加速 WHERE / JOIN / ORDER BY / GROUP BY 等操作。
数据库为一列或多列建立的额外数据结构(常见是 B-Tree),记录“键 → 行位置”的映射。优化器据此选择 Index Seek(走索引)而非全表扫描。
代价:占空间;对 INSERT/UPDATE/DELETE 有维护开销(越多索引,写入越慢);需要统计信息与碎片维护。
# 创建INDEX # 需要一个 index_name 和指定某一列 CREATE INDEX index_name ON TABLE_NAME (column_name) -- 单列 CREATE INDEX idx_users_email ON users(email); -- 复合 + 排序优化(MySQL/Postgres 都支持 DESC 语法) CREATE INDEX idx_orders_user_created ON orders(user_id, created_at DESC); -- 唯一性 CREATE UNIQUE INDEX uq_users_email ON users(email);