2021-01-04:mysql里的innodb引擎的数据结构,你有看过吗?
福哥答案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引擎的数据结构,你有看过吗?的更多相关文章
- MySql锁与InnoDB引擎
MySql锁与InnoDB引擎 mysql的锁是面试中很高频问题,也是我们在日常开发中经常会遇到但是我们并没有注意到的地方.我把我自己理解的锁通过本篇博文分享出来,由于锁需要结合事务来理解,本文只介绍 ...
- Mysql优化系列--Innodb引擎下mysql自身配置优化-转
原文链接:http://www.cnblogs.com/kevingrace/p/6133818.html 谢谢楼主 1.简单介绍 InnoDB给MySQL提供了具有提交,回滚和崩溃恢复能力的事务安全 ...
- mysql里的数据库引擎, 编码格式
针对数据库里即使设置了varchar类型的字段, 值输入中文报错的情况,是因为数据库的默认编码类型不支持汉字输入. utf-8 可以编译全球通用的所有语言符号. 由1-6个可变字节组成,有非常严格的排 ...
- 查看MySQL是否支持InnoDB引擎以及不支持的解决办法
通过命令行进入mysql SHOW variables like "have_%"; 显示结果中会有如下3种可能的结果: have_innodb YES have_innodb N ...
- MySQL文件和Innodb引擎文件
构成MySQL数据库和InnoDB存储引擎表的各种类型文件,组要有以下文件 参数文件:告诉MySQL实例启动时在哪里可以找到,数据库文件,并且指定某些初始化参数,这些参数定义了某种内存结构的大小等设置 ...
- MySQL InnoDB引擎B+树索引简单整理说明
本文出处:http://www.cnblogs.com/wy123/p/7211742.html (保留出处并非什么原创作品权利,本人拙作还远远达不到,仅仅是为了链接到原文,因为后续对可能存在的一些错 ...
- mysql 5.7 innodb count count(*) count(1) 大数据 查询慢 耗时多 优化
原文:mysql 5.7 innodb count count(*) count(1) 大数据 查询慢 耗时多 优化 问题描述 mysql 5.7 innodb 引擎 使用以下几种方法进行统计效率差不 ...
- Mysql优化系列(1)--Innodb引擎下mysql自身配置优化
1.简单介绍InnoDB给MySQL提供了具有提交,回滚和崩溃恢复能力的事务安全(ACID兼容)存储引擎.InnoDB锁定在行级并且也在SELECT语句提供一个Oracle风格一致的非锁定读.这些特色 ...
- Innodb引擎下mysql自身配置优化
1.简单介绍InnoDB给MySQL提供了具有提交,回滚和崩溃恢复能力的事务安全(ACID兼容)存储引擎.InnoDB锁定在行级并且也在SELECT语句提供一个Oracle风格一致的非锁定读.这些特色 ...
- mysql存储引擎InnoDB详解,从底层看清InnoDB数据结构
InnoDB一个支持事务安全的存储引擎,同时也是mysql的默认存储引擎.本文主要从数据结构的角度,详细介绍InnoDB行记录格式和数据页的实现原理,从底层看清InnoDB存储引擎. 本文主要内容是根 ...
随机推荐
- 普冉PY32系列(九) GPIO模拟和硬件SPI方式驱动无线收发芯片XL2400
目录 普冉PY32系列(一) PY32F0系列32位Cortex M0+ MCU简介 普冉PY32系列(二) Ubuntu GCC Toolchain和VSCode开发环境 普冉PY32系列(三) P ...
- 《流畅的Python》 读书笔记 第三章字典和集合 20231017
第3章 字典和集合 dict 类型是 Python 语言的基石 模块的命名空间.实例的属性和函数的关键字参数中都可以看到字典的身影 跟它有关的内置函数都在__builtins__.__dict__ 模 ...
- 从零用VitePress搭建博客教程(2) –VitePress默认首页和头部导航、左侧导航配置
2. 从零用VitePress搭建博客教程(2) –VitePress默认首页和头部导航.左侧导航配置 接上一节: 从零用VitePress搭建博客教程(1) – VitePress的安装和运行 四. ...
- CSP2021游记
题外话 中午十二点半到了考场.没到时间不让进,恰巧发现 lhm 在对面饭店于是去讨论了一下上午 J 组的题,复习了线段树板子( 等到进考场坐好的时候已经两点半了,看考号本来以为我们同机房三个同学会坐一 ...
- GitHub 术语解释
为了大家进一步了解和使用 GitHub,在本文中,我们一起来看看 GitHub 的常用术语,也可以说是基本概念: Repository:简称Repo,可以理解为"仓库",我们的项目 ...
- MySQL IFNULL函数
MySQL IFNULL函数简介 MySQL IFNULL函数是MySQL控制流函数之一,它接受两个参数,如果不是NULL,则返回第一个参数. 否则,IFNULL函数返回第二个参数. 两个参数可以是文 ...
- Android RTL 语言适配
RTL 语言,即 right to left language,也就是右对齐的语言,与一般语言按照左对齐的方式不同,需要进行特别适配. AndroidManifest.xml 文件中,增加 andro ...
- Centos8离线安装golang
一.下载golang 1.下载安装包 2.下载后解压. tar -zxvf go1.17.linux-amd64.tar.gz 二.配置环境变量 vim /etc/profile 1.在环境变量最后添 ...
- 第二章 若依JFlow流程模型设计
若依-JFlow框架如何拉取.配置并运行请查看这篇文章:<第一章 若依-JFlow的配置与启动> 上一节我们讲解了如何拉取若依-JFlow框架代码并配置运行,这一部分我们就以公司员工请假的 ...
- Optional源码分析(涉及Objects源码和Stream源码)
研究Optional源码之前先谈一谈Objects源码. 主要代码: @ForceInline public static <T> T requireNonNull(T obj) { if ...