关于 B+tree 的疑问
mysql 中 innodb 引擎索引使用 B+tree
我看网上资料说 ===:
( B+ 树中的节点不存储数据,只是索引,而 B 树中的节点存储数据)
可是 innodb 的主键索引的叶子节点就是数据啊
请问 是哪里不对吗
关于 B+tree 的疑问
mysql 中 innodb 引擎索引使用 B+tree
我看网上资料说 ===:
( B+ 树中的节点不存储数据,只是索引,而 B 树中的节点存储数据)
可是 innodb 的主键索引的叶子节点就是数据啊
请问 是哪里不对吗
|
infrebootMar 28, 2020
1
分内部节点,叶子节点。B+Tree:内部节点不存值,子节点存值。B-Tree:内部节点、子节点都存值
|
|
holosolaMar 28, 2020
2
你这么理解吧,B+ 树数据只存储在叶子节点,B 树每个节点都存储了数据。
|
|
gosansamMar 28, 2020
3
主键列的索引 叶子结点存储完整的数据,非主键索引在叶子节点存储索引列+主键等,增加一次主键索引查询(高效果),避免浪费空间
|
|
hhyvs111Mar 28, 2020
4
网上资料是错的
|
|
SmartKeyerrorMar 29, 2020
5
在网上遇到自己不确定知识点的时候,最简单且有效的办法就是自己动手验证。MySQL InnoDB 存储引擎实际存储就 3 个文件: .opt, .frm, .ibd ,其中.ibd 为实际存储数据和索引的地方,聚簇索引和辅助索引数据均在该文件中。建一张测试表,写点儿数据,然后闷头分析.ibd 文件就行了。
当初我对这东西也很有疑问,动手分析了之后明白了个大概。https://smartkeyerror.com/MySQL-physical-structure,后面自己写了篇博客,希望对你有帮助。 PS: 推荐《 MySQL 技术内幕-InnoDB 存储引擎》,相信能解答你许多疑惑。 |
|
LudwigWSMar 29, 2020
6
@SmartKeyerror 向大佬学习
|
|
SmartKeyerrorMar 29, 2020
7
@LudwigWS 不是大佬,无名小卒而已..
|
|
andj4cnMar 29, 2020
8
|