Java面试-18:介绍一下MySQL有那些索引类型?

1. 主键索引(PRIMARY KEY)

  • 最特殊、最重要的索引,一张表只能有一个

  • 自带唯一 + 非空,不能重复、不能为 NULL

  • 比如用户表的 user_id,默认就是主键索引

  • 数据库会用它来唯一标识一行数据,查询最快

2. 唯一索引(UNIQUE)

  • 和主键很像,但允许字段为 NULL(NULL 不算重复)

  • 作用:保证这一列的值绝对不重复

  • 比如手机号、身份证号,适合建唯一索引

3. 普通索引(INDEX / 常规索引)

  • 最常用、最简单,没任何限制

  • 只干一件事:加速查询

  • 没有唯一、非空要求,想加就加

4. 复合索引(联合索引)

  • 一次给多个字段建索引,比如 (name, age, gender)

  • 遵循最左前缀原则:从左边第一个字段开始匹配才能用上

  • 适合经常一起查询的多个字段,比建多个单字段索引高效

5. 全文索引(FULLTEXT)

  • 专门用来做关键词搜索

  • 比如文章内容、商品描述里搜 “手机”“教程”

  • like %关键词% 快得多,like 根本走不了索引

6. 空间索引(SPATIAL)

  • 地理位置、坐标用的

  • 比如经纬度、地图范围查询,普通开发很少用到

Java面试-17:介绍一下 Redis 缓存穿透、击穿、雪崩,及处理方案? 2026-03-25
Java面试-19:Redis的数据类型有哪些? 2026-03-25

评论区