V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
MySQL 5.5 Community Server
MySQL 5.6 Community Server
Percona Configuration Wizard
XtraBackup 搭建主从复制
Great Sites on MySQL
Percona
MySQL Performance Blog
Severalnines
推荐管理工具
Sequel Pro
phpMyAdmin
推荐书目
MySQL Cookbook
MySQL 相关项目
MariaDB
Drizzle
参考文档
http://mysql-python.sourceforge.net/MySQLdb.html
zhao1014
V2EX  ›  MySQL

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

  •  
  •   zhao1014 · 2022-07-26 18:17:31 +08:00 · 1681 次点击
    这是一个创建于 869 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

    数据页是从磁盘加载到内存中的,如果发现数据不在当前页,可能在下一页,才会去磁盘继续加载页。
    Jooooooooo
        3
    Jooooooooo  
       2022-07-26 20:15:51 +08:00
    搜 buffer pool
    Aresxue
        4
    Aresxue  
       2022-08-01 14:17:38 +08:00   ❤️ 1
    当前,因为不是所有数据都在 buffer pool 里面,一般情况下 B+树只有根节点才是常驻内存的。
    zhao1014
        5
    zhao1014  
    OP
       2022-08-01 16:26:37 +08:00
    @Aresxue 记岔了,我以为一次 I/O 能把整个树加载进内存呢
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3138 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 04:41 · PVG 12:41 · LAX 20:41 · JFK 23:41
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.