mysql索引:密集索引和稀疏索引的区别

本文详细介绍了MySQL数据库中两种主要的索引类型——密集索引和稀疏索引。密集索引在InnoDB引擎中使用,每个索引值都对应数据行的完整信息,且一个表只能有一个密集索引。而稀疏索引在MyISAM引擎中常见,只存储键值和行的地址。MyISAM的索引和数据分开存储,分别在.MYI和.MYD文件中。理解这两种索引对于优化数据库查询性能至关重要。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

密集索引

定义:密集索引文件中的每个搜索码值都对应一个索引值。

特点:

  1. B+树叶子节点保存的不仅仅是键值,还保存了该行的其他列的信息
  2. 密集索引决定了表的物理排列顺序,所以一个表只能有且仅有一个密集索引

MySQL数据库中,InnoDB定义密集索引:

在这里插入图片描述
注意:一般InnoDB的稀疏索引,存储的是主键信息
在这里插入图片描述
InnoDB文件存储方式:索引和数据存储在一个.ibd文件中
在这里插入图片描述

稀疏索引

定义:稀疏索引文件只为索引码的某些值建立索引项

特点:B+树叶子节点保存的是键位信息和该行数据的地址,或保存的是键位信息和主键

MySQL数据库中:
不论是什么索引,MyISAM中,都是稀疏索引

注意:一般MyISAM的稀疏索引,存储的是行的地址值

在这里插入图片描述
MyISAM引擎的文件存储方式:索引和数据分别存放,索引存放在.MYI文件下,数据存放在.MYD文件项

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值