跳至正文
Line's Blog
Line's Blog
  • 首页
  • 关于
  • 归档
  • 相册
  • 首页
  • 关于
  • 归档
  • 相册
关

搜索

  • https://www.facebook.com/
  • https://twitter.com/
  • https://t.me/
  • https://www.instagram.com/
  • https://youtube.com/
Subscribe
MySQL

001-MySQL的索引类型有哪些?

头像
作者 Line
2026年6月1日 1 分钟阅读
0

MySQL索引可以从三个维度来分类:数据结构、存储方式、索引性质。

从数据结构角度看,MySQL支持这几种索引:
1)B+树索引:最常用的,InnoDB和MylSAM默认都用它。多层平衡树结构,叶子节点用链表串起来,既能快速定位单条记录,又能高效做范围扫描。
2)哈希索引:通过哈希函数直接算出数据位置,等值查询O(1)级别,但不支持范围查询和排序。Memory 引擎默认用哈希索引,InnoDB有个自适应哈希索引会自动建,不用手动管。
3)全文索引:把文本分词后建倒排索引,类似搜索引擎的原理。适合对TEXT类型字段做关键字搜索,比如文章内容检索。
4)空间索引:基于R树实现,专门处理地理坐标这种多维数据,支持区域查询、距离计算。

从InnoDB存储方式看,分两类:
1)聚簇索引:主键索引就是聚簇索引,叶子节点直接存完整的行数据,数据按主键顺序物理存储。一张表只能有一个聚簇索引。
2)非聚簇索引:也叫二级索引,叶子节点只存索引字段值和主键值。查完二级索引还得拿着主键去聚簇索引里再查一遍,这个过程叫回表。

从索引性质看,有这几种:
1)主键索引:唯一且非空,每张表只能有一个。InnoDB里主键索引就是聚簇索引。
2)唯一索引:保证列值不重复,但允许有NULL,可以有多个NULL。
3)普通索引:没有唯一约束,纯粹为了加速查询。
4)联合索引:多列组合成一个索引,遵循最左前缀原则,列顺序很重要。
5)全文索引:文本搜索用。
6)空间索引:GIS数据用。

头像
作者

Line

关注我
其他文章
上一个

006-Java中ArrayList 的扩容机制是怎样的?

下一个

002-为什么MySQL选择使用B+树作为索引结构?

暂无评论!成为第一个。

发表回复 取消回复

您的邮箱地址不会被公开。 必填项已用 * 标注

近期文章

  • 公寓租赁平台
  • 001-Spring Boot是如何实现自动配置的?
  • 005-MySQL 并发事务中会出现的三大问题
  • 004-MySQLInnoDB引擎中的聚簇索引和非聚簇索引有什么区别?
  • 003-MySQL索引的最左前缀匹配原则

归档

  • 2026 年 6 月
  • 2026 年 5 月

分类

  • Java
  • Linux
  • MySQL
  • Spring Boot
  • 生活
  • 项目

网站信息

  • 0
  • 3
  • 1
  • 101
  • 1
Copyright © 2026 Line - Powered by WordPress
粤ICP备2026067359号