2022年8月21日

B+树索引(6)之MyISAM索引方案

摘要: B+树索引(6)之MyISAM索引方案 前言回顾 在前面索引系列的文章中都是基于InnoDB存储引擎去考虑的,相关文章链接参考如下 [B+树索引(5)之索引注意事项] https://mp.weixin.qq.com/s/AvztexX0DAcg9pNmY6YUgg [B+树索引(4)之索引分类] 阅读全文

posted @ 2022-08-21 16:59 Java面试365 阅读(54) 评论(0) 推荐(0)

2022年8月13日

InnoDB数据页结构(4)之页目录

摘要: InnoDB数据页结构之页目录 前言回顾 InnoDB存储引擎的数据页结构如下所示 之前有聊过最小记录、最大记录、用户记录结构,其中用户记录中的记录头信息存在n_owned值,当时的解释是为了单链表检索效率,所以将链表分为若干组,每个组的最大记录的n_owned值用于记录该组的记录数量,测试表结构和 阅读全文

posted @ 2022-08-13 10:26 Java面试365 阅读(207) 评论(0) 推荐(0)

2022年8月10日

InnoDB数据页结构(2)之记录头信息解析

摘要: InnoDB数据页结构之记录头信息解析 前言 之前聊了InnoDB数据页的结构由7部分组成,如下所示 现在将以记录为切入点讲解,先来聊聊记录头信息,在用户记录中每条数据都包含一个记录头信息,以COMPACT行结构为例,结构图如下所示 记录头用于描述记录信息,一般由5个字节40位构成,结构如下 在之前 阅读全文

posted @ 2022-08-10 22:20 Java面试365 阅读(73) 评论(0) 推荐(0)

2022年8月9日

InnoDB数据页结构(1)环境搭建

摘要: InnoDB数据页结构 之前有提过Mysql数据库内存空间和磁盘空间交互为了高效一般采用页的形式传输,每个页通常的大小为16kb,页的形式有很多种,但我们最需要了解的是存放业务数据的页简称数据页,下面聊聊数据页的基本结构。 数据页基本结构 数据页的存储空间被划分了多个数据区域,每个部分负责的功能不一 阅读全文

posted @ 2022-08-09 18:49 Java面试365 阅读(46) 评论(0) 推荐(0)

2022年8月1日

InnoDB行格式(4)行溢出和溢出页

摘要: InnoDB存储引擎行溢出和溢出页 我们应该知道Mysql中内存和磁盘之间的数据交互并不是以记录行为单位而是以页为单位,因为内存和磁盘间的处理速度差了几个数量级,单次读取一条记录那么Mysql无法高效运行,所以Mysql都是以页为基本单位管理存储空间的,我们的记录都会被分配到某个页中存储,一个页的大 阅读全文

posted @ 2022-08-01 19:41 Java面试365 阅读(143) 评论(0) 推荐(0)

2022年7月30日

InnoDB行格式(3)VARCHAR最多能存储的数据

摘要: InnoDB存储引擎VARCHAR最多能存储的数据 前言 我们知道在InnoDB存储引擎中,行格式Compact、Compressed、Dynamic都会计算变长字段VARCHAR长度列表,这个字段长度一般采用两个字节表示,也就是VARCHAR能表示的最大长度应该是2的16次方(因为一个字节8位,两 阅读全文

posted @ 2022-07-30 14:19 Java面试365 阅读(86) 评论(0) 推荐(0)

2022年7月26日

InnoDB行格式(1)

摘要: InnoDB行格式(1) 前言 我们知道在Mysql的服务端分为了server层和存储层,其中存储层负责对表数据进行读取和写入,这个工作由存储引擎完成,在Mysql中分为多种存储引擎如InnoDB、MyISAM、Memory等,其中InnoDB是默认的存储引擎,下面以InnoDB存储引擎为例来分析。 阅读全文

posted @ 2022-07-26 23:53 Java面试365 阅读(58) 评论(0) 推荐(0)

2022年7月25日

py_innodb_page_info分析ibd文件信息

摘要: py_innodb_page_info分析ibd文件信息 py_innodb_page_info工具是《MySQL技术内幕 InnoDB存储引擎》作者用来分析Mysql表空间的各页的类型和数据,此工具采用python编写,github地址如下 https://github.com/happieme/ 阅读全文

posted @ 2022-07-25 23:52 Java面试365 阅读(223) 评论(1) 推荐(0)

2022年7月23日

Mysql客户端到服务端字符集的转换

摘要: Mysql客户端到服务端字符集的转换 Mysql客户端和服务端之间的通信请求本质上是一个字符串,当然这个字符串会通过某种字符集编码转换为二进制数据,那是不是客户端和服务端之间的通信就只有一个字符集编码呢?如下所示 服务端编码 显然并不是这样,在服务端处理请求的过程中就涉及到三个字符集的转换,这三个转 阅读全文

posted @ 2022-07-23 11:36 Java面试365 阅读(196) 评论(0) 推荐(0)

2022年7月21日

字符集和比较规则的应用

摘要: 字符集和比较规则的应用 Mysql对字符集的应用分为以下四个方面。 Mysql服务器级别 用两个系统变量来描述字符集以及比较规则 字符集:character_set_server 比较规则:collation_server 因为这两个是系统变量自然可以采用如下三种方式修改默认值 在默认my.cnf文 阅读全文

posted @ 2022-07-21 19:17 Java面试365 阅读(196) 评论(0) 推荐(0)

导航