滴滴 Java 后端面试:唯一索引使用场景

滴滴 · Java · 2026-04

面试题目

数据库

Q1:什么场景下使用唯一索引?


参考解析

Q1:什么场景下使用唯一索引?

  • 适用场景:需要在业务层保证字段值不重复的列,如用户名、手机号、邮箱、身份证号、订单号等。
  • 核心作用:唯一索引同时承担两个职责——数据唯一性约束(防止脏数据写入)和查询加速(等值查询可走索引)。
  • 与主键区别:主键索引天然唯一且不可为 NULL;唯一索引允许存在一个 NULL 值(MySQL 中多个 NULL 不冲突)。
  • 性能注意:写入时会触发唯一性校验,高并发插入场景下开销略高于普通索引;InnoDB 还会影响 change buffer 的使用(唯一索引无法利用 change buffer,需立即读页校验)。
  • 备考建议:回答时结合业务举例(如防止用户重复注册),再点出与普通索引、主键索引的区别,以及对写性能的影响,可体现深度。