福哥答案2021-01-04:

面试官刚开始问我看过mysql源码没,然后问了这个问题。回答B+树,过不了面试官那关。
答案来自《MySQL技术内幕 InnoDB存储引擎 第2版》第四章,时间仓促,答案不一定对,如果有更好的答案,请直接留言评论。

表空间tablespace:所有数据都放在表空间中。

段segment:数据段、索引段、回滚段。

区extent:一个区有64个连续页,一个引擎页为16KB。

页page或者块block:16K。数据页(B-tree Node)、undo页(undo Log Page)、系统页(System Page)、事务数据页(Transaction system Page)、插入缓冲位图页(Insert Buffer Bitmap)、插入缓冲空闲列表页(Insert Buffer Free List)、未压缩的二进制大对象页(Uncompressed BLOB Page)、压缩的二进制大对象页(compressed BLOB Page)。

行row:
Compact格式:
1.变长字段长度列表
2.NULL标志位
3.记录头信息
4.列1~n数据
Redundant格式:
1.字段长度偏移列表
2.记录头信息
3.列1~n数据


MySQL源码分析(4):InnoDB主要数据结构及调用流程
评论

2021-01-04:mysql里的innodb引擎的数据结构,你有看过吗?的更多相关文章

  1. MySql锁与InnoDB引擎

    MySql锁与InnoDB引擎 mysql的锁是面试中很高频问题,也是我们在日常开发中经常会遇到但是我们并没有注意到的地方.我把我自己理解的锁通过本篇博文分享出来,由于锁需要结合事务来理解,本文只介绍 ...

  2. Mysql优化系列--Innodb引擎下mysql自身配置优化-转

    原文链接:http://www.cnblogs.com/kevingrace/p/6133818.html 谢谢楼主 1.简单介绍 InnoDB给MySQL提供了具有提交,回滚和崩溃恢复能力的事务安全 ...

  3. mysql里的数据库引擎, 编码格式

    针对数据库里即使设置了varchar类型的字段, 值输入中文报错的情况,是因为数据库的默认编码类型不支持汉字输入. utf-8 可以编译全球通用的所有语言符号. 由1-6个可变字节组成,有非常严格的排 ...

  4. 查看MySQL是否支持InnoDB引擎以及不支持的解决办法

    通过命令行进入mysql SHOW variables like "have_%"; 显示结果中会有如下3种可能的结果: have_innodb YES have_innodb N ...

  5. MySQL文件和Innodb引擎文件

    构成MySQL数据库和InnoDB存储引擎表的各种类型文件,组要有以下文件 参数文件:告诉MySQL实例启动时在哪里可以找到,数据库文件,并且指定某些初始化参数,这些参数定义了某种内存结构的大小等设置 ...

  6. MySQL InnoDB引擎B+树索引简单整理说明

    本文出处:http://www.cnblogs.com/wy123/p/7211742.html (保留出处并非什么原创作品权利,本人拙作还远远达不到,仅仅是为了链接到原文,因为后续对可能存在的一些错 ...

  7. mysql 5.7 innodb count count(*) count(1) 大数据 查询慢 耗时多 优化

    原文:mysql 5.7 innodb count count(*) count(1) 大数据 查询慢 耗时多 优化 问题描述 mysql 5.7 innodb 引擎 使用以下几种方法进行统计效率差不 ...

  8. Mysql优化系列(1)--Innodb引擎下mysql自身配置优化

    1.简单介绍InnoDB给MySQL提供了具有提交,回滚和崩溃恢复能力的事务安全(ACID兼容)存储引擎.InnoDB锁定在行级并且也在SELECT语句提供一个Oracle风格一致的非锁定读.这些特色 ...

  9. Innodb引擎下mysql自身配置优化

    1.简单介绍InnoDB给MySQL提供了具有提交,回滚和崩溃恢复能力的事务安全(ACID兼容)存储引擎.InnoDB锁定在行级并且也在SELECT语句提供一个Oracle风格一致的非锁定读.这些特色 ...

  10. mysql存储引擎InnoDB详解,从底层看清InnoDB数据结构

    InnoDB一个支持事务安全的存储引擎,同时也是mysql的默认存储引擎.本文主要从数据结构的角度,详细介绍InnoDB行记录格式和数据页的实现原理,从底层看清InnoDB存储引擎. 本文主要内容是根 ...

随机推荐

  1. 《最新出炉》系列初窥篇-Python+Playwright自动化测试-18-处理鼠标拖拽-上篇

    1.简介 本文主要介绍两个在测试过程中可能会用到的功能:在selenium中宏哥介绍了Actions类中的拖拽操作和Actions类中的划取字段操作.例如:需要在一堆log字符中随机划取一段文字,然后 ...

  2. vscode提取扩展时出错XHR failed

    问题分析 使用cmd的ping工具尝试ping域名 marketplace.visualstudio.com 无法ping通 解决方案 1. 打开本地配置文件  C:\Windows\System32 ...

  3. Interesting Array 题解

    Interesting Array 题目大意 构造一个序列 \(a\),使其满足若干限制条件,每个限制条件是形如 l r q 的式子,其意义是:\(\&_{i=l}^ra_i=q\). 题意分 ...

  4. VSCode使用JavaScript刷LeetCode配置教程(亲试可以!)

    账号秘密都对,但是缺登录不成功的问题 诀窍可能是: 在属性设置中把LeetCode版本改成cn.点击LeetCode配置,修改Endpoint配置项,改成leetcode-cn,再次尝试登陆即可. 大 ...

  5. YbtOJ 数位DP G.幸运666

    日常写点奇奇怪怪的乱搞做法 awa 这题跟前面几道数位 DP 的区别在于让求第 \(n\) 小的数. 虽然我不会求也不想学这个,但我们可以 binary search! 问题就转换为求 \([1,mi ...

  6. 【Java集合】了解集合的框架体系结构及常用实现类,从入门到精通!

    前言 通过Java基础的学习,我们掌握了主要的Java语言基本的语法,同时了解学习了Java语言的核心-面向对象编程思想. 从集合框架开始,也就是进入了java这些基础知识及面向对象思想进入实际应用编 ...

  7. C++基础杂记(3)

    类的继承 基类与派生类之间的构造行为 在派生类中使用基类方法 protected 的访问权限 多态公有继承 关键字 virtual 示例 抽象基类(ABC) 私有继承和保护继承 多重继承 类的继承 基 ...

  8. JAVA多线程(3)——如何加锁

    1.加锁不正确导致数据不一致:m1执行过程中,m2(未加synchronized)可以执行,因为m2不用获得锁就可以执行 1 public class TT implements Runnable { ...

  9. .NET Conf 2023 将在 11 月 15日-17 日 举行 ,附中文日程表

    北京时间 11月15-17日,.NET Conf 2023 即将到来!大会上将发布.NET 8, 以今为止运行最快的.NET 平台, .NET Conf 始终致力于为所有与会者创造世界级的.引人入胜的 ...

  10. 【开源】int,long long去一边去:高精度大合集!

    加法 \(add\) string add(string s1, string s2) { //时间复杂度 O(log n) string res = ""; int c = 0, ...