2025-04-05    2025-04-05    515 字  2 分钟

定义和约束

  • 主键索引(Primary Key)‌:主键是一种特殊的唯一索引,用于唯一标识表中的每一行数据。主键列的值必须唯一且不能为空(NULL)。每个表只能有一个主键。
  • 唯一索引(Unique Index)‌:唯一索引确保某列或某几列的值唯一,但允许有空值(NULL)。一个表可以有多个唯一索引。

性能差异

  • 查询性能‌:唯一索引在查询时的扫描速度较快,因为它可以快速找到唯一值的列。主键索引和自增主键的性能相近,但略逊于唯一索引。
  • ‌插入性能‌:在插入数据时,主键索引和自增主键的性能相近,因为它们都需要生成唯一值。唯一索引的插入性能较差,因为它需要检查新插入的数据是否重复。

使用场景

  • 主键索引‌:适用于那些不容易更改的唯一标识,如自动递增列、身份证号等。主键不允许空值,且一个表只能有一个主键。‌
  • 唯一索引‌:适用于需要保证某列或多列数据唯一性的场景,但允许空值。例如,商品库存数量、用户邮箱等字段可以设置为唯一索引,以确保数据的唯一性。

物理存储特性

  • 主键索引‌:通常是聚簇索引,意味着表中的数据实际上按主键的顺序存储。这可能在某些情况下提供更快的查询性能,特别是当查询涉及到表中的大量数据时。
  • ‌唯一索引‌:通常是非聚簇索引,数据和索引分开存储。