Innodb存储引擎
文章平均质量分 96
个人对于Innodb存储引擎研究记录。
Binary Oracle
一名热爱开源和技术的Coder , 开源框架spring committer , golang开源网络库netpoll committer; (脱产备战25考研中,停更一年)
展开
-
简单聊聊Innodb崩溃恢复那些事
简单聊聊Innodb崩溃恢复那些事原创 2023-09-08 16:09:43 · 657 阅读 · 0 评论 -
大白话聊聊Innodb的锁机制
大白话聊聊Innodb的锁机制原创 2023-08-21 11:55:01 · 494 阅读 · 0 评论 -
innodb为什么选择B+ Tree而不是跳表,Redis为什么选择跳表而不是B+ Tree
innodb为什么选择B+ Tree而不是跳表,Redis为什么选择跳表而不是B+ Tree转载 2023-03-20 13:33:23 · 910 阅读 · 0 评论 -
MRR和ICP
就上述查询语句而言,优化器会将查询条件拆分为(2,1), (3, 1), . . . , (19, 1),最后再根据这些拆分出的条件进行数据的查询。此外,若InnoDB存储引擎或者MyISAM存储引擎的缓冲池不是足够大,即不能存放下一张表中的所有数据,此时频繁的离散读操作还会导致缓存中的页被替换出缓冲池,然后又不断地被读入缓冲池。此外,Multi_Range Read还可以将某些范围查询,拆分为键值对,以此来进行批量的数据查询。,当进行索引查询时,首先根据索引来查找记录,然后再根据。例如,下述语句可以将。原创 2022-12-11 22:59:08 · 1130 阅读 · 0 评论 -
Online DDL和Cardinality
本文来聊聊关于Mysql索引管理方面的一些内容,首先我们先准备一张表:我们通过存储过程插入一批数据:我们通过下面这条sql语句来查看一些Order表中相关索引情况:那么其中每一列又是什么意思呢?Mysql 5.5版本之前,当我们对数据库索引进行添加或删除这类DDL操作,Mysql数据库的操作过程为:可以发现,若用户对于一张大表进行索引的添加和删除操作,那么这会需要很长的时间。更关键的是,若有大量事务需要访问正在被修改的表,这意味着数据库服务不可用。而这对于Microsoft SQL Server或Or原创 2022-12-11 15:00:10 · 803 阅读 · 0 评论 -
Innodb如何实现表--下篇
Innodb数据页由以下7个部分组成:File Header是所有类型页通用的头信息,共占用38字节:Innodb存储引擎页主要有下面几种类型:PageHeader是数据页特有的,专门用来记录数据页的状态信息,共占用48字节:在InnoDB存储引擎中,每个数据页中有两个虚拟的行记录,用来限定记录的边界。Infimum记录是比该页中任何主键值都要小的值, Supremum指比任何可能大的值还要大的值。这两个值在页创建时被建立,并且在任何情况下不会被删除。在Compact行格式和Redundant行格式下,原创 2022-12-08 13:03:43 · 885 阅读 · 0 评论 -
Innodb如何实现表--上篇
每个页存放的行记录也是有硬性定义的,最多允许存放16KB/2—200行的记录,即7992行记录。23 20 16 14 13 0c 06逆转为06,0c,13,14,16,20,23,分别代表第一列长度6,第二列长度6(6+6=0x0C),第三列长度为7(6+6+7=0x13),第四列长度1 (6+6+7+1=0x14)第五列长度2(6+6+7+1+2=0x16),第六列长度10(6+6+7+1+2+10=0x20),第七列长度3 (6+6+7+1+2+10+3=0x23)。真的可以存放65535字节吗?原创 2022-12-02 20:03:05 · 794 阅读 · 0 评论 -
Mysql相关的各种类型文件
因为MySQL插件式存储引擎的体系结构的关系,MySQL数据的存储是根据表进行的,每个表都会有与之对应的文件。但不论表采用何种存储引擎,MySQL都有一个以frm为后缀名的文件,这个文件记录了该表的表结构定义。frm还用来存放视图的定义,如用户创建了一个v_a视图,那么对应地会产生一个v_a.frm文件,用来记录视图的定义。原创 2022-12-01 16:58:48 · 1551 阅读 · 0 评论 -
Mysql日志---redo
前面的文章中,我们依次介绍了MySQL的slow query log、binlog、relaylog,如果对这三种log仍然有疑问的话,可以向前翻一翻文章查看。今天我们来聊一聊MySQL中的另外一个重要的日志,它就是redolog。redolog是InnoDB存储引擎所特有的一种日志,其他存储引擎没有这个日志功能,例如像之前我们用过的MyISAM存储引擎就没有这种redolog的功能。我们知道MySQL从宏观上看,可以分为两次:server服务层和store engine存储引擎层。转载 2022-12-01 16:57:45 · 1272 阅读 · 0 评论 -
Mysql日志---binlog
MySQL中到底有多少种log?你是否经常听别人说什么binlog、binary log、redo log、undo log、回滚日志、重做日志、中继日志、错误日志、慢查询日志、一般日志等等。这些概念都分别是什么?MySQL生成这些日志的目的都是什么?接下来我们一起来分析一下MySQL中到底有哪些log吧。MySQL中经常遇到的日有以下几种:接下来,我们一个一个分别了解一下它们。今天这篇文章主要是分析一些binlog日志,其他的日志会在后续的文章中逐个分析。binlog是大家学习MySQL中经常遇到的,也是转载 2022-12-01 15:26:17 · 7234 阅读 · 0 评论 -
Innodb是如何运转的
然而,对于Insert Buffer页的选择, InnoDB存储引擎并非采用这个方式,它随机地选择 Insert Buffer B+树的一个页,读取该页中的space及之后所需要数量的页。因为启用 Insert Buffer索引后,辅助索引页(space,page_no)中的记录可能被插入 到Insert Buffer B+树中,所以为了保证每次Merge Insert Buffer页必须成功,还需要有 一个特殊的页用来标记每个辅助索引页(space,page_no)的可用空间。原创 2022-11-29 17:13:21 · 914 阅读 · 0 评论