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存储引擎. 本文主要内容是根 ...
随机推荐
- GO数组解密:从基础到高阶全解
在本文中,我们深入探讨了Go语言中数组的各个方面.从基础概念.常规操作,到高级技巧和特殊操作,我们通过清晰的解释和具体的Go代码示例为读者提供了全面的指南.无论您是初学者还是经验丰富的开发者,这篇文章 ...
- Arduino – Turn LED ON and OFF With Button
In this Arduino tutorial I will show you how to turn an LED on and off with a push button. In fact, ...
- P6066 [USACO05JAN] Watchcow S
prologue 这个题这么水的一个板子题. analysis 这个题目我们正反建两条边,在跑欧拉回路的时候,看这个边是不是被走过,走过就不走,跳过这个边.如果没走,就走这条边并且标记这个边走过了. ...
- 【Dotnet 工具箱】基于 .NET 6 和 Angular 构建项目任务管理平台
1.Reha 时间管理大师 Rhea 是一个基于 C# 和 .NET 6 开发的在线任务管理平台,类似于 禅道.Jira.Redmine, 滴答清单等. 支持多视图多维度统一管理任务.多级结构,工作区 ...
- Java虚拟机(JVM):第四幕:自动内存管理 - 经典垃圾收集器
前言:如果说收集算法是内存回收的方法论,那么垃圾收集器则是内存回收的实践者.整哥Java堆 :Full GC. 1.Serial收集器:最基础.历史最悠久的收集器,这是一个单线程工作的收集器. 2.P ...
- SqlServer的执行计划如何分析?
sqlserver的执行计划 执行计划是 SQL Server 中的一个重要工具,用于分析和优化查询的性能.它提供了关于查询的详细信息,包括查询的执行顺序.使用的索引.连接类型.过滤条件等. What ...
- 高性能日志脱敏组件:已支持 log4j2 和 logback 插件
项目介绍 日志脱敏是常见的安全需求.普通的基于工具类方法的方式,对代码的入侵性太强,编写起来又特别麻烦. sensitive提供基于注解的方式,并且内置了常见的脱敏方式,便于开发. 同时支持 logb ...
- P1126 机器人搬重物 题解
Problem 题目概括 $n \times m $ 的网格,有些格子是障碍格.\(0\) 无障碍,\(1\) 有障碍.机器人有体积,总是在格点上. 有5种操作: 向前移动 \(1/2/3\) 步 左 ...
- Java Exception最佳实践(转)
https://www.dubby.cn/detail.html?id=9033 1.异常介绍 2.Java中的异常介绍 3.自定义异常 4.几个建议 1)不要生吞异常 2)申明具体的异常 3)尽可能 ...
- 背包DP全类型
AcWing 2. 01背包问题 #include <iostream> #include <algorithm> using namespace std; const int ...