索引树高会影响磁盘 I/O 次数吗?

2022-07-26 18:17:31 +08:00
 zhao1014

MySQL 把数据页加载进内存后再检索索引树,那不是内存 I/O 么跟磁盘 I/O 啥关系?磁盘 I/O 不是在加载数据页( B+Tree 节点)时才触发么?

1492 次点击
所在节点    MySQL
5 条回复
JeromeCui
2022-07-26 20:10:00 +08:00
非叶子节点也是 B+树的节点,存在磁盘上啊
LeegoYih
2022-07-26 20:11:29 +08:00
树高会影响 IO 次数,用 B+Tree 树就是这个原因,比 B-Tree 更矮更胖。

数据页是从磁盘加载到内存中的,如果发现数据不在当前页,可能在下一页,才会去磁盘继续加载页。
Jooooooooo
2022-07-26 20:15:51 +08:00
搜 buffer pool
Aresxue
2022-08-01 14:17:38 +08:00
当前,因为不是所有数据都在 buffer pool 里面,一般情况下 B+树只有根节点才是常驻内存的。
zhao1014
2022-08-01 16:26:37 +08:00
@Aresxue 记岔了,我以为一次 I/O 能把整个树加载进内存呢

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/868852

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX