问题背景

在看《MYSQL技术内幕——innodb存储引擎》,其中一章讲到页的存储结构,里面可以通过 Page Directory进行二分查找,但是有种情况我不懂得如何进行二分查找

ibd文件相关内容

0000c000h: 71 A5 C3 AB 00 00 00 03 FF FF FF FF FF FF FF FF ; qッ?...

0000c010h: 00 00 00 00 4C 6A 90 B5 45 BF 00 00 00 00 00 00 ; ....Lj惖E?.....

0000c020h: 00 00 00 00 00 B5 00 03 01 CC 80 0C 00 00 00 00 ; .....?..虁.....

0000c030h: 01 B1 00 02 00 09 00 0A 00 00 00 00 00 00 00 00 ; .?.............

0000c040h: 00 00 00 00 00 00 00 00 01 31 00 00 00 B5 00 00 ; .........1...?.

0000c050h: 00 02 00 F2 00 00 00 B5 00 00 00 02 00 32 01 00 ; ...?..?....2..

0000c060h: 02 00 1C 69 6E 66 69 6D 75 6D 00 07 00 0B 00 00 ; ...infimum......

0000c070h: 73 75 70 72 65 6D 75 6D 0A 00 00 00 10 00 22 80 ; supremum......"€

0000c080h: 00 00 01 00 00 00 01 02 94 AF 00 00 01 3B 01 10 ; ........敮...;..

0000c090h: 63 63 63 63 63 63 63 63 63 63 0A 00 00 00 18 00 ; cccccccccc......

0000c0a0h: 22 80 00 00 02 00 00 00 01 02 95 B0 00 00 01 3C ; "€........暟...<

0000c0b0h: 01 10 6A 6A 6A 6A 6A 6A 6A 6A 6A 6A 0A 00 00 00 ; ..jjjjjjjjjj....

0000c0c0h: 20 00 22 80 00 00 03 00 00 00 01 02 98 B2 00 00 ; ."€........槻..

0000c0d0h: 02 03 01 10 6D 6D 6D 6D 6D 6D 6D 6D 6D 6D 0A 00 ; ....mmmmmmmmmm..

0000c0e0h: 04 00 28 00 22 80 00 00 04 00 00 00 01 02 9C B4 ; ..(."€........湸

0000c0f0h: 00 00 02 06 01 10 69 69 69 69 69 69 69 69 69 69 ; ......iiiiiiiiii

0000c100h: 0A 00 00 00 30 00 22 80 00 00 05 00 00 00 01 02 ; ....0."€........

0000c110h: 9F B6 00 00 02 08 01 10 66 66 66 66 66 66 66 66 ; 煻......ffffffff

0000c120h: 66 66 0A 00 00 00 38 00 22 80 00 00 06 00 00 00 ; ff....8."€......

0000c130h: 01 02 A2 B8 00 00 02 09 01 10 63 63 63 63 63 63 ; ..⒏......cccccc

0000c140h: 63 63 63 63 0A 00 00 00 40 00 22 80 00 00 07 00 ; cccc....@."€....

0000c150h: 00 00 01 02 A3 B9 00 00 02 10 01 10 74 74 74 74 ; ....9......tttt

0000c160h: 74 74 74 74 74 74 0A 00 00 00 48 00 22 80 00 00 ; tttttt....H."€..

0000c170h: 08 00 00 00 01 02 A4 BA 00 00 01 3E 01 10 6E 6E ; ......ず...>..nn

0000c180h: 6E 6E 6E 6E 6E 6E 6E 6E 0A 00 00 00 50 00 22 80 ; nnnnnnnn....P."€

0000c190h: 00 00 09 00 00 00 01 02 A5 BB 00 00 02 13 01 10 ; ........セ......

0000c1a0h: 68 68 68 68 68 68 68 68 68 68 0A 00 00 00 58 FE ; hhhhhhhhhh....X?

0000c1b0h: BF 80 00 00 0A 00 00 00 01 02 A6 BC 00 00 01 B3 ; 縺...........?

0000c1c0h: 01 10 78 78 78 78 78 78 78 78 78 78 00 00 00 00 ; ..xxxxxxxxxx....

...

0000fff0h: 00 00 00 70 00 E5 00 63 71 A5 C3 AB 4C 6A 90 B5 ; ...p.?cqッ獿j惖

问题

上述数据表有10条内容,当我想查找第8条数据得时候,使用Page Directory如何进行二分查找?

以下说法是否正确:

当 记录(如第8条记录)在 supremum记录槽中,只能通过上一个slot槽(如key=4)开端进行遍历

我的分析过程

page directory有以下三个槽(以下是逆序)

slot1: 00 70 -> 槽记录数为 7

slot2: 00 E5 -> 槽记录数为 4

slot3: 00 63 -> 槽记录数为 1

由于 0xc00e5的key=4,0xc0070指向 supremum,虽然他的槽是7(含它自己),但是它的下一个记录为 00 无法进行遍历,故只能通过 key=4遍历直到找到key=8,就是说当 记录(如第8条记录)在 supremum记录槽中,只能通过上一个slot槽(如key=4)开端进行遍历

mysql page directory_【innodb】page directory的二分查找问题相关推荐

  1. MySQL技术内幕-InnoDB存储引擎第2版-学习笔记-01

    MySQL技术内幕-InnoDB存储引擎第2版-学习笔记-01 1. MySQL体系结构和存储引擎 1.1 定义数据库和实例 数据库database: 物理操作系统文件或其他形式文件类型的集合. 当使 ...

  2. ad09只在一定范围内查找相似对象_kafka日志段中的二分查找

    二分查找 Kafka 中直接接触索引或索引文件的场景可能不是很多.索引是一个很神秘的组件,Kafka 官方文档也没有怎么提过它.索引这个组件的源码还有一个亮点,那就是它应用了耳熟能详的二分查找算法来快 ...

  3. mysql技术内幕innodb存储引擎——表索引算法和锁_(转)Mysql技术内幕InnoDB存储引擎-表索引算法和锁...

    表 原文:http://yingminxing.com/mysql%E6%8A%80%E6%9C%AF%E5%86%85%E5%B9%95innodb%E5%AD%98%E5%82%A8%E5%BC% ...

  4. mysql技术innodb存储引擎读后感_《Mysql技术内幕-InnoDB存储引擎》读书笔记 (一)...

    @(Mysql) 官方数据库 下载 导入/data/mysql57/bin/mysql --socket /data/mysql3306/mysql.socket -uroot -ppassword1 ...

  5. 【mysql】-【innodb数据存储结构】

    文章目录 数据库的存储结构:页 磁盘与内存交互基本单位:页 页结构概述 页的大小 页的上层结构 页的内部结构 File Header(文件头部)和File Trailer(文件尾部) File Hea ...

  6. MySQL技术内幕InnoDB存储引擎(表索引算法和锁)

    表 4.1.innodb存储引擎表类型 innodb表类似oracle的IOT表(索引聚集表-indexorganized table),在innodb表中每张表都会有一个主键,如果在创建表时没有显示 ...

  7. MySQL内核:InnoDB存储引擎 卷1

    MySQL内核:InnoDB存储引擎卷1(MySQL领域Oracle ACE专家力作,众多MySQL Oracle ACE力捧,深入MySQL数据库内核源码分析,InnoDB内核开发与优化必备宝典) ...

  8. MySQL(四)InnoDB中一棵B+树能存多少行数据

    一.InnoDB一棵B+树可以存放多少行数据?(约2千万) 我们都知道计算机在存储数据的时候,有最小存储单元,这就好比我们今天进行现金的流通最小单位是一毛.在计算机中磁盘存储数据最小单元是扇区,一个扇 ...

  9. Mysql技术内幕innodb引擎笔记

    第2章 InnoDB存储引擎 2.3 InnoDB体系架构 InnoDB存储引擎有多个内存块,可以认为这些内存块组成了一个大的内存池,负责如下工作: 维护所有进程/线程需要访问的多个内部数据结构. 缓 ...

最新文章

  1. AI-2048 注释
  2. vMware vSphere 5.0发布时间
  3. 问题解决——使用CriticalSection后 0xXXXXXXXX处最可能的异常: 0xC0000005: 写入位置 0x00000014 时发生访问冲突
  4. 1833: [ZJOI2010]count 数字计数
  5. @MarkFan 口语练习录音 20140415 [MDL演讲口语录音]
  6. Centos安装Xen总结
  7. Java IO: 序列化与ObjectInputStream、ObjectOutputStream
  8. 肝了一个月,我做了个免费的面试刷题网
  9. 两个时间的差值Java,Java如何找到两个时间之间的差值?
  10. Python字典的操作与使用
  11. NYOJ-57 6174问题
  12. iOS开发小技巧 -- tableView-section圆角边框解决方案
  13. html无节日为空,这个生死相拥的节日_311.Html
  14. 神经网络入门-感知器算法
  15. 计算电磁学中的矩量法及其求解过程介绍
  16. 20200525-生物技术-四川师范大学自考生物技术(本科)考试计划.txt
  17. Google GSON GsonBuilder().setDateFormat(yyyy-MM-dd HH:mm:ss)不能格式化Data
  18. ARM uboot 的移植3 -从 uboot 官方标准uboot开始移植
  19. Android Studio Chipmunk 发布
  20. TI高精度实验室-运算放大器-第七节-共模抑制和电源抑制

热门文章

  1. 光线跟踪的几种常见求交运算
  2. mysql scrapy 重复数据_小心避坑:MySQL分页时使用 limit+order by 会出现数据重复问题...
  3. win10如何安装域名系统服务器地址,win10搭建dns解析服务器地址
  4. 机器人定位导航技术 激光SLAM与视觉SLAM谁更胜一筹?
  5. 【零基础】计算机网络技术
  6. Grafana密码重置为admin
  7. 《PHP、MySQL和Apache入门经典(第5版)》一2.7 基本安全规则
  8. 数据库内存泄漏——A SQLiteConnection object for database '/data/data/.../databases/....db' was leaked!...
  9. 一个java 验证码的实现提供多种的实现
  10. python战斗2:看到一个页面编码