96SEO 2026-06-21 05:15 2
说实话,面试官这个问题问得挺好的,你知道为啥吗?哈哈,因为它Neng考察你对 MySQL 索引的理解深度。
咱就是说平时咱们用 MySQL,用得Zui多的就是主键和唯一索引了但hen多人对它们的区别还是一知半解。

主键索引和唯一索引在 InnoDB 中的存储结构完全不同,这个是关键。
主键是一种约束,唯一索引是一种索引,两者在本质上是不同的。
主键创建后一定包含一个唯一性索引,唯一性索引并不一定就是主键。
数量限制每张表只Neng有一个主键,但Ke以有多个唯一索引,这个是它们的一个明显区别。
你可Neng会问,为啥每张表只Neng有一个主键呢?害,这主要是因为主键是用来唯一标识表中每一行数据的,它就像我们的身份证号一样,是唯一的。
NULL 值主键列不允许为空值,而唯一性索引列允许空值,这也是它们的一个重要区别。
不对不对,我纠正一下唯一索引列是允许NULL的,但Zui多只Neng有一个NULL值,有些数据库允许多个 NULL 值存在你懂的。
存储结构主键索引是聚簇索引,叶子节点存储完整的数据;而唯一索引是二级索引,叶子节点存储的是主键值,这就意味着通过唯一索引查询时可Neng会发生回表操作。
这个回表操作啊,就是先找到唯一索引对应的主键值,然后再通过主键值去聚簇索引里找完整的数据,说实话,这个过程挺耗时的。
为什么百度不收录我的文章呢?有人可Neng会问,说我写了篇hen不错的文章,但为啥百度不收录呢?其实吧,这其中原因有hen多,比如你的文章原创度不够,或者你的网站权重太低了再或者就是百度的算法geng新了导致你的文章暂时没有被收录,你懂的。
不过一般来说Ru果你的文章质量高,且符合百度的收录规则,那么它迟早会被收录的,咱就是说要有耐心嘛。
实践出真知来kan个例子,创建一个测试表:
CREATETABLEuser UNIQUE, -- 唯一索引,允许 NULL phone VARCHAR UNIQUE -- 唯一索引,允许 NULL);
然后我们插入一些数据:
INSERTINTOuser VALUES ;-- ❌ ERROR : Column 'id' cannot be nullINSERTINTOuser VALUES ; -- ✅ 成功INSERTINTOuser VALUES ; -- ✅ 成功
从这个例子我们Ke以kan出,主键是不允许NULL的,而唯一索引是允许NULL的,并且 MySQL 中Ke以插入多个 NULL 值,尽管它们kan起来是一样的。
查询性Neng差异通过主键查询和通过唯一索引查询的性Neng是有差异的,因为它们的存储结构不同嘛。
SELECT * FROM user WHERE id = ; -- ✅ 直接走聚簇索引,一次查询即可获取完整数据SELECT * FROM user WHERE email = ''; -- ⚠️ 需要回表:先查唯一索引得到 id,再回表查聚簇索
Zui佳实践
一般来说我们推荐使用BIGINT自增主键,因为这样Ke以避免hen多麻烦,比如碎片问题什么的,而对于业务上的唯一约束,我们Ke以使用唯一索引来实现。
CREATETABLE orders UNIQUE NOT NULL, -- 业务订单号,不允许 NULL user_id BIGINT NOT NULL, INDEX idx_user );
Ru果没有主键会怎样?
InnoDB 要求每张表必须有聚簇索引,Ru果没有显式定义主键,它会怎么Zuo呢?
MySQL 会自动选择一个非空唯一索引作为聚簇索引;
Ru果没有合适的,会生成一个隐藏的6字节主键,这个是 InnoDB 自动生成的,你kan不到它,但它确实存在。
一下
- 主键 vs 唯一索引:-
- 主键:-
- - 聚簇索引-
- - 每张表只Neng有一个-
- - 不允许NULL-
- 叶子节点存储完整行数据-
- 唯一索引:-
- - 二级索-
- - Ke以有多个-
- - 允许NULL-
- 存储主-
. 主键和唯一 索引在 InnoDB 中存储结构完全不同.作为专业的SEO优化服务提供商,我们致力于通过科学、系统的搜索引擎优化策略,帮助企业在百度、Google等搜索引擎中获得更高的排名和流量。我们的服务涵盖网站结构优化、内容优化、技术SEO和链接建设等多个维度。
| 服务项目 | 基础套餐 | 标准套餐 | 高级定制 |
|---|---|---|---|
| 关键词优化数量 | 10-20个核心词 | 30-50个核心词+长尾词 | 80-150个全方位覆盖 |
| 内容优化 | 基础页面优化 | 全站内容优化+每月5篇原创 | 个性化内容策略+每月15篇原创 |
| 技术SEO | 基本技术检查 | 全面技术优化+移动适配 | 深度技术重构+性能优化 |
| 外链建设 | 每月5-10条 | 每月20-30条高质量外链 | 每月50+条多渠道外链 |
| 数据报告 | 月度基础报告 | 双周详细报告+分析 | 每周深度报告+策略调整 |
| 效果保障 | 3-6个月见效 | 2-4个月见效 | 1-3个月快速见效 |
我们的SEO优化服务遵循科学严谨的流程,确保每一步都基于数据分析和行业最佳实践:
全面检测网站技术问题、内容质量、竞争对手情况,制定个性化优化方案。
基于用户搜索意图和商业目标,制定全面的关键词矩阵和布局策略。
解决网站技术问题,优化网站结构,提升页面速度和移动端体验。
创作高质量原创内容,优化现有页面,建立内容更新机制。
获取高质量外部链接,建立品牌在线影响力,提升网站权威度。
持续监控排名、流量和转化数据,根据效果调整优化策略。
基于我们服务的客户数据统计,平均优化效果如下:
我们坚信,真正的SEO优化不仅仅是追求排名,而是通过提供优质内容、优化用户体验、建立网站权威,最终实现可持续的业务增长。我们的目标是与客户建立长期合作关系,共同成长。
Demand feedback