![](https://img-blog.csdnimg.cn/16a124149adf4bbbae29c9764192bc64.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
mysql
文章平均质量分 71
由浅入深大话mysql
热心的大肚皮
努力打码
展开
-
mysql优化必会-什么是成本
mysql 优化必看原创 2022-02-09 15:29:52 · 769 阅读 · 0 评论 -
CentOs 7 Mysql单机搭建攻略
哈喽大家好,我是热心的大肚皮1、下载mysql安装包,版本为5.6.26 地址:http://dev.mysql.com/get/Downloads/MySQL-5.6/MySQL-5.6.26-1.linux_glibc2.5.x86_64.rpm-bundle.tar2、将下载后的包上传到安装好CentOS虚拟机上去,然后将包解压出来[root@locahost]# tar xvf MySQL-5.6.26-1.linux_glibc2.5.x86_64.rpm-bundle.tar MySQ原创 2022-01-10 13:53:14 · 183 阅读 · 0 评论 -
mysql独立表空间
大家好,我是热心的大肚皮,皮哥。 今天我们聊一聊表空间。表空间中数据的物理存储InnoDb系统表空间使用系统表空间的话,会在该表所在数据库对应的子目录下创建一个名为"表名.frm"的文件,表中的数据会存储在对应的文件中。独立表空间会在该表所在数据库对应的子目录下创建一个名为"表名.frm"和一个名为"表名.ibd"的文件,表中的数据会存储在这个ibd的文件中。MyISAM每个表会有以下3个文件原创 2022-01-09 15:13:48 · 952 阅读 · 0 评论 -
快速查询的秘籍—B+树索引下
大家好,我是热心的大肚皮,皮哥。今天我们接着聊一聊索引,不多说,开整。索引的分类InnoDB索引分为聚簇索引、二级索引、联合索引。聚簇索引上一篇我们聊到的索引就是聚簇索引,它有以下两个特点。使用记录主键值的大小进行记录和页的排序,包含3种含义。1、页中的数据根据主键的大小形成单向链表,分成不同的组,每个组中主键最大记录在页内的偏移量当作槽存在页目录中,其中infimum为头,supremum为尾,通过二分法可快速查找。2、各个存放用户记录的页根据主键大小形成双向链表。3、存放目录项的页分为原创 2022-01-06 09:32:04 · 137 阅读 · 0 评论 -
快速查询的秘籍—B+树索引上
大家好,我是热心的大肚皮,皮哥。前段时间和多位大佬讨论过,是聊聊实操还是聊聊八股文呢,一千个读者就会有一千个哈姆雷特,皮哥最后认真思考了下初衷,不知道大家有没有这样的痛点,在学习时或者实操时,找不到成体系的讲解文章,只能从头看书寻找,这样学习效率低下,所以皮哥决定,由浅入深,先学原理,在来实操,正所谓,先学武功,后来退敌。不多说,开整。如何查询页中数据?先来回顾下前行、页存储。如下图所示。细节不过多赘述了,感兴趣的同学,可以看看前几篇文章。在一个页中查询根据主键查询:则根据页目录通过二分法快原创 2021-12-27 13:46:46 · 210 阅读 · 0 评论 -
InnoDB数据页结构下
哈喽大家好,我是热心的大肚皮,皮哥。Page Directory(页目录)看完上篇是不是觉得n_owned这个为啥没提到,哈哈,今天我们来揭秘,n_owned与数据页的页目录关系非常大(重申下n_owned的含义是每个页的数据都会分成多个组,每个组的带头大哥会存这个组的记录数,而其他记录则是存0)。然后开始重点。我们知道了mysql数据页中的用户记录是按照主键大小排列单向链表存储的,那么我们怎么查询其中一条记录呢?举个例子,select * from table where c1 = 3原创 2021-12-26 22:51:27 · 584 阅读 · 0 评论 -
InnoDB数据页结构上
大家好,我是热心的大肚皮,皮哥。前面介绍了页的基本信息,mysql为了不同的目的设计了多种不同类型的页,比如存放undo日志的页,存放INODE信息的页等,但是我们更关心存放表记录的页,官方叫索引页(Index),也就是今天的主题,我们还没有介绍过索引,所以为了不让大家引起迷惑,暂时叫数据页吧。数据结构页由以上7个部分组成,讲解的顺序由浅入深,不会按照数据存储的顺序来讲述。#数据结构页中记录存储其中 infimum+supremum 与user records 这些是记录。刚开始生成页的时候,没原创 2021-12-24 14:31:57 · 370 阅读 · 0 评论 -
mysql浅析-InnoDB行存储后续
哈喽大家好,我是热心的大肚皮,皮哥。上篇文章我们讲解了COMPACT的存储方式,接下来继续学习后三种存储格式。InnoDB行存储InnoDB行存储的方式分为COMPACT、REDUNDANT、DYNAMIC和COMPRESSED这四种。REDUNDANT每一行的存储信息如下图所示。字段长度偏移量列表会采用16进制按照字段的逆序存入列表中,通过偏移量计算列值的长度。举个例子,列1 长度为1,列2长度为3,列3长度为4,则列表展示为4 、7、8,每一列偏移量的第一位作为null的标志。记录头与原创 2021-12-23 20:49:42 · 866 阅读 · 0 评论 -
InnoDB行存储之COMPACT
哈喽大家好,我是热心的大肚皮,皮哥。上次我们简单说了下字符集,今天我们讲一下mysql中InnoDb是如何存储行记录的。存储引擎简单说一下mysql常用的存储引擎。MEMORY数据只存储在内存,不存储在磁盘;多用于临时表。MyISAM主要支持非事物处理。InnoDB默认存储引擎,支持事务、行级锁、外键。主要将数据划分多个页,以页作为磁盘和内存之间交互基本单位,默认大小16KB,每次读写最小操作16KB,这个与服务器io有关,不过多讲解啦,大家知道就好。InnoDB行存储InnoD原创 2021-12-23 10:19:44 · 770 阅读 · 0 评论 -
Mysql浅析-字符集
哈喽大家好,我是热心的大肚皮,皮哥。mysql不管是互联网还是传统it,我们都是必会的技术之一,那我们会从浅入深进行mysql的全部讲解。好啦,不多说,上货。一、字符集我们使用mysql时,不管是库还是表,我们都要设置字符集,而我们常用的字符集都有什么呢?utf8也就是utf8mb3,用1到3个字节表示一个字符。utf8mb4用1到4个字节表示一个字符,可存储表情。二、比较规则一个字符集可以有多个比较规则,其中有一个默认的比较规则;一个比较规则必须对应一个字符集。utf8_ge原创 2021-12-22 16:29:44 · 412 阅读 · 0 评论