温馨提示×

温馨提示×

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

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

为何要用自增主键

发布时间:2026-09-23 16:47:49 来源:亿速云 阅读:95 作者:小樊 栏目:数据库

使用**自增主键(Auto Increment Primary Key)**在关系型数据库中非常常见,主要原因可以归纳为以下几点:


1. 保证唯一且不为空

  • 自增主键由数据库自动生成,每次插入新记录时自动 +1(或按步长递增)。
  • 开发者无需关心“这条记录该用什么 ID”,避免手动生成导致重复或空值。

2. 插入性能更好

  • 自增主键通常是递增的整型,插入新数据时总是“追加”在表尾部。
  • 对比 UUID 或随机字符串:
    • 随机主键会导致页分裂、索引重排,写入性能差
    • 自增主键对 B+ 树索引更友好

3. 索引效率高、占用空间小

  • 整数(如 BIGINT)比字符串(如 UUID)占用空间小
  • 主键同时是聚簇索引(如 MySQL InnoDB),更小的主键 = 更小的索引体积 = 更快的查询

4. 方便排序和分页

  • 自增 ID 天然有序
  • 常用于:
    ORDER BY id
    LIMIT 10 OFFSET 100
    
  • 新数据“时间越新,ID 越大”,逻辑直观

5. 作为外键更合适

  • 其他表引用时:
    user_id BIGINT
    
  • 比使用业务字段(手机号、邮箱)更稳定:
    • 手机号可换
    • 邮箱可改
    • ID 永不变

6. 避免业务耦合

  • 主键只负责“唯一标识”
  • 不要把订单号、用户编号等当主键,否则业务一变,数据库跟着改

什么时候不适合自增主键?

  • 分布式系统(易冲突)→ 用雪花算法、UUID
  • 需要隐藏数据量(自增 ID 暴露总数)
  • 业务本身已有稳定唯一标识(如身份证号,但一般不推荐当主键)

一句话总结

自增主键简单、高效、稳定,是大多数单体/中小系统的最佳默认选择。

如果你用的是 MySQL / PostgreSQL / 分布式架构,我也可以针对具体场景细讲。

向AI问一下细节

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

AI
助
手