InnoDB二级索引页的物理结构是什么样的
What does the physical structure of InnoDB secondary index pages looks like
据此 https://dev.mysql.com/doc/internals/en/innodb-fil-header.html 并在 google 上进行了一些搜索。我可以看到一条记录存储在页面上的用户记录区域,它是 FIL_PAGE_TYPE = FIL_PAGE_INDEX(17855 also 0x45BF).
但我现在对二级索引感到困惑。 是否存储在与 FIL_PAGE_TYPE = FIL_PAGE_INDEX
相同的页面类型中?
我用一些索引创建了一个 table,添加了一些数据。发现我的 ibd 文件包含一个 FIL_PAGE_INODE
页面。所以我猜二级索引是用 FIL_PAGE_TYPE = FIL_PAGE_INODE
存储在页面上的。
如果是这样,我怎样才能找到那个页面上的索引内容?
二级索引确实使用 FIL_PAGE_INDEX
就像 primary/clustered 键一样。主键和任何二级索引之间没有结构差异。 FIL_PAGE_INODE
页面类型是 space 管理系统的一部分,在我的博客 post Page management in InnoDB space files 上有描述。
据此 https://dev.mysql.com/doc/internals/en/innodb-fil-header.html 并在 google 上进行了一些搜索。我可以看到一条记录存储在页面上的用户记录区域,它是 FIL_PAGE_TYPE = FIL_PAGE_INDEX(17855 also 0x45BF).
但我现在对二级索引感到困惑。 是否存储在与 FIL_PAGE_TYPE = FIL_PAGE_INDEX
相同的页面类型中?
我用一些索引创建了一个 table,添加了一些数据。发现我的 ibd 文件包含一个 FIL_PAGE_INODE
页面。所以我猜二级索引是用 FIL_PAGE_TYPE = FIL_PAGE_INODE
存储在页面上的。
如果是这样,我怎样才能找到那个页面上的索引内容?
二级索引确实使用 FIL_PAGE_INDEX
就像 primary/clustered 键一样。主键和任何二级索引之间没有结构差异。 FIL_PAGE_INODE
页面类型是 space 管理系统的一部分,在我的博客 post Page management in InnoDB space files 上有描述。