news 2026/8/5 21:24:18

Mysql:主键索引 唯一索引 普通索引 前缀索引

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Mysql:主键索引 唯一索引 普通索引 前缀索引

这四种索引的区别主要在于:是否唯一、是否自动建立、是否只索引部分字符串

1. 主键索引

主键索引由PRIMARY KEY创建:

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

特点:

一张表只能有一个主键

主键值必须唯一

不能为NULL

MySQL 会自动创建主键索引

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

叶子节点保存完整的行数据

可以把主键理解为每一行数据的唯一身份证号

2. 唯一索引

唯一索引要求索引列的值不能重复:

CREATE UNIQUE INDEX uk_email ON users(email);

例如:

a@example.com b@example.com a@example.com -- 不允许重复

特点:

一张表可以有多个唯一索引

不允许重复值

MySQL 中唯一索引通常允许多个NULL

InnoDB 中,如果表已经有主键,唯一索引一般是二级索引

也可以通过表结构定义:

CREATE TABLE users ( id BIGINT PRIMARY KEY, email VARCHAR(100) UNIQUE );

主键和唯一索引都保证唯一,但语义不同

主键:这行数据的主要身份标识 唯一索引:某个字段不能重复

3. 普通索引

普通索引也叫非唯一索引,允许索引值重复:

CREATE INDEX idx_age ON users(age);

例如多个用户都可以是18岁:

18 18 20 25

它的主要作用是加快查询:

SELECT * FROM users WHERE age = 18;

特点:

一张表可以有多个普通索引

允许重复值

不负责保证数据唯一

通常属于二级索引

4. 前缀索引

前缀索引只对字符串字段的前 N 个字符建立索引:

CREATE INDEX idx_email_prefix ON users(email(10));

这表示只索引email的前 10 个字符,而不是整个字段。

例如:

abcdef123456@example.com abcdef123499@example.com

如果只建立前 6 个字符的前缀索引,它们在索引中都会表现为:

abcdef

特点:

减少索引占用的磁盘空间

降低索引维护成本

适合很长的字符串字段

前缀太短可能导致重复值很多,查询效率下降

查询时可能仍需要回表判断完整字符串

例如:

SELECT * FROM users WHERE email LIKE 'abcdef%';

可能使用前缀索引

但:

WHERE email LIKE '%example.com'

通常无法有效使用这种索引,因为查询条件不是从字符串开头匹配

前缀索引也可以和唯一索引组合,但此时约束的是“前 N 个字符不能重复”:

CREATE UNIQUE INDEX uk_code_prefix ON products(code(8));

这不代表完整的code不能重复,只代表前 8 个字符不能重复

对比总结

类型是否唯一一张表可有几个主要作用
主键索引必须唯一且非 NULL1 个唯一标识记录
唯一索引不允许重复,通常允许多个 NULL多个保证字段唯一并加速查询
普通索引允许重复多个加速普通查询
前缀索引取决于是否和 UNIQUE 组合多个只索引字符串前缀,节省空间

需要特别注意:

“前缀索引”描述的是索引范围,“主键、唯一、普通”描述的是索引约束类型,它们不是完全互斥的分类。比如可以有普通前缀索引,也可以有唯一前缀索引

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/5 21:21:55

探秘浙江省住房与城乡建设厅网站:政策解读、办事指南与民生热点全解析,让数据多跑路让百姓少跑腿

在这个数字化浪潮汹涌向前的时代,我们每个人的日常生活都似乎被一串无形的代码和一个个冰冷的链接所串联。无论是清晨起床刷到的第一条新闻,还是深夜加班后查询的那一个办事进度,互联网早已不仅仅是一个工具,它成了我们生活的延伸,甚至是另一种维度的生存方式。而在众多与…

作者头像 李华
网站建设 2026/8/5 21:17:46

网站建设深度解析:2024年企业如何通过高质量的公司新闻提升品牌信任度与转化率

在这个数字化浪潮席卷全球的今天,如果你还以为企业只需要有一个能打开的网页就能高枕无忧,那真的有些太乐观了。咱们今天不聊那些高大上却虚无缥缈的互联网黑话,也不整那些看着头疼的后台代码逻辑,就咱们这些做实业、做服务的老板们,或者负责企业运营的伙伴,坐下来喝杯茶…

作者头像 李华
网站建设 2026/8/5 21:13:38

揭秘嘉兴市建设局网站:从政策解读到便民服务的一站式深度体验与未来展望

在这个数字化浪潮席卷每一个角落的时代,我们似乎每天都在和各种各样的在线平台打交道。从早上睁眼刷手机看新闻,到中午点外卖选商家,再到晚上在社交软件上与朋友聊天,互联网早已渗透进了生活的肌理。而对于我们普通百姓,特别是那些在嘉兴这片热土上奔波生活的市民来说,有…

作者头像 李华
网站建设 2026/8/5 21:10:50

分布式事务 Seata:从原理到实战完整指南

1. 引言在微服务架构中,业务操作往往需要跨多个服务完成,如何保证数据一致性成为关键挑战。分布式事务解决方案 Seata(Simple Extensible Autonomous Transaction Architecture)应运而生。本文将深入剖析 Seata 的核心原理、部署架…

作者头像 李华