ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

Mysql:主键

2026/8/6 4:44:37 拓冰建站 浏览量
Mysql:主键

MySQL 中的主键(Primary Key)是用来唯一标识表中每一行数据的字段或字段组合

例如:

CREATE TABLE users ( id BIGINT PRIMARY KEY AUTO_INCREMENT, name VARCHAR(50), age INT );

这里id就是主键。

主键的特点

  1. 唯一

    不能有两行数据拥有相同的主键值。

  2. 不能为 NULL

    每一行都必须有确定的主键值。

  3. 一张表只能有一个主键

    但主键可以由多个字段组成,这叫联合主键

    PRIMARY KEY (user_id, course_id)
  4. 通常会自动建立索引

    主键本身就是一种索引,适合根据主键快速查询:

    SELECT * FROM users WHERE id = 10;
  5. 不一定需要自增

    主键可以是:

    • 自增数字
    • UUID
    • 业务编号
    • 多个字段组合

InnoDB 中的特殊含义

在 InnoDB 中,主键索引通常是聚簇索引

主键索引的叶子节点 = 主键值 + 完整的一行数据

所以根据主键查询时,找到主键索引叶子节点就能直接得到整行数据。

如果没有显式定义主键,InnoDB 会依次尝试:

  1. 使用第一个UNIQUE NOT NULL索引作为聚簇索引;
  2. 如果也没有,则自动生成隐藏的 6 字节行 ID。

简单来说:

主键就是一张表中用于唯一确定每一行记录的“身份证号”。