MySQL索引详解:MyISAM与InnoDB的B+树区别
MySQL中的MyISAM与InnoDB存储引擎在索引实现上都采用了B+树结构,那么它们之间具体有哪些区别呢?今天我们就来详细聊聊这个话题。
免费影视、动漫、音乐、游戏、小说资源长期稳定更新! 👉 点此立即查看 👈
首先,我们创建一张示例表,SQL语句如下:
CREATE TABLE `t_user` (`id` bigint(20) NOT NULL AUTO_INCREMENT,`name` varchar(16) DEFAULT NULL,`email` varchar(32) DEFAULT NULL,`phone` varchar(11) DEFAULT NULL, PRIMARY KEY (`id`),KEY `k_name` (`name`)) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=latin1
除了主键id字段外,我们还在name字段上添加了一个普通索引,并插入了6条测试数据:
图片
1.MyISAM
MyISAM将索引文件与数据文件分开存储,索引文件仅保存数据记录所在的数据页地址。
1.1 主键索引
MyISAM存储引擎使用B+树索引结构,其非叶子节点存储索引键值,而叶子节点则保存了主键值及对应的数据记录地址。由于叶子节点不直接存储实际数据,这种索引方式被称为“非聚集索引”。
图片
1.2 非主键索引
主键索引与非主键索引在结构上完全一致,唯一的区别在于非主键索引允许出现重复的键值。下面我们来看一下k_name这个索引的具体结构:
图片
2.InnoDB
与MyISAM不同,InnoDB采用B+树组织成聚集索引,其主键索引的叶子节点保存了完整的数据记录。因此InnoDB的数据文件本身即为索引文件。
2.1 主键索引
InnoDB主键索引的键值为主键值,而数据域则保存了完整的数据行记录。如下图所示:
图片
2.2 非主键索引
InnoDB的普通索引键值保存索引字段值,数据域则存储对应记录的主键值,查询时需要先通过普通索引找到主键,再根据主键回表查询完整记录。如下图所示:
图片
3.总结
虽然MyISAM和InnoDB存储引擎都使用B+树索引,但二者的索引结构存在本质区别:一种是聚集索引,另一种则是非聚集索引。
游乐网为非赢利性网站,所展示的游戏/软件/文章内容均来自于互联网或第三方用户上传分享,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系youleyoucom@outlook.com。
同类文章
智现未来联合晶合集荣获SEMICON China良率提升奖
3月26日,在SEMICON China 2026“半导体智能制造-未来工厂”论坛上,一场关于半导体制造AI未来形态的思想碰撞引发行业瞩目。智现未来董事长兼CEO管健博士受邀登台,发表题为《从“+A
珠海金湾引进30亿航空整机制造项目,布局载人飞行产业
南都讯 记者李洁琼 3月28日,珠海天际航空科技有限公司在金湾区天章产业园开业。作为珠海低空经济产业的新锐力量,天际航空智能制造基地的投运,标志着金湾区在载人级飞行器制造领域迈出关键一步,为珠海“天
神州写真:中国机器人租赁升温,二次开发成关键新赛道
来源:中国新闻网中新社杭州3月27日电 (鲍梦妮)随着机器人产业发展以及春晚机器人表演等热点带动,今年以来,中国多地机器人租赁业务持续升温。在上海上线的全球首个开放式机器人租赁平台“擎天租”,自去年
京东翻新打印机避雷指南:警惕以旧充新三大陷阱
大象新闻·大象财富记者 李莉 张迪驰315消费者权益日刚过,广东李女士在某平台购买的“全新”打印机频繁报错,维修无果。她查询最新质保发现,整机标注保修三年,系统却显示剩余保修期不足两年,经售后核实确
马斯克母亲分享长城游览视频:赞叹“令人惊叹”
来源:九派新闻、环球网版权归原作者所有,如有侵权请及时联系据环球网:美国企业家埃隆·马斯克的母亲梅耶·马斯克3月27日在社交平台X上发帖,分享自己在长城游览的视频。梅耶·马斯克当天在帖子中称,此次旅
- 日榜
- 周榜
- 月榜
相关攻略
2015-03-10 11:25
2015-03-10 11:05
2021-08-04 13:30
2015-03-10 11:22
2015-03-10 12:39
2022-05-16 18:57
2025-05-23 13:43
2025-05-23 14:01
热门教程
- 游戏攻略
- 安卓教程
- 苹果教程
- 电脑教程

