示例
示例
-- 业务唯一:注册邮箱不允许重复
ALTER TABLE users ADD UNIQUE KEY uk_email (email);
-- 仅查询支撑:允许重复值
ALTER TABLE orders ADD INDEX idx_user_created (user_id, created_at);
-- PostgreSQL:唯一约束会创建唯一索引
ALTER TABLE users ADD CONSTRAINT uk_users_email UNIQUE (email);| 查找差异 | 唯一索引等值命中可提前结束;普通索引还要继续检视重复值 |
|---|---|
| 写入成本 | 唯一索引插入要做冲突检查,并发冲突需业务处理(重试或 upsert) |
| NULL | 两库默认允许唯一索引中出现多个 NULL(PG 可用 NULLS NOT DISTINCT 改变) |