你可能不知道,MySQL的一行记录是如何存储在磁盘上的。这篇文章将带你揭开这个神秘的面纱,让你了解MySQL的存储原理和格式。我们将通过以下几个步骤来探索这个问题:
1.创建一个数据库和一张表,并查看它们在磁盘上的文件。
2.插入一些数据,并用二进制方式打开数据文件,观察数据是如何存储的。
.分析数据文件的结构和格式,理解每个字段的含义和作用。
4.探讨不同的行格式对数据存储的影响,以及如何选择合适的行格式。
第一步:创建数据库和表我们首先需要准备一个MySQL5.7的环境,并启动它。然后,我们创建一个名为flash的数据库,并在其中创建一张名为student的表,表结构如下:
CREATETABLE`flash`.`student`(`id`INTNOTNULL,`name`VARCHAR(10)NOTNULL,`age`INTNULL,PRIMARYKEY(`id`))ENGINE=InnoDBDEFAULTCHARACTERSET=utf8mb4;
这张表有三个字段,分别是id(主键)、name和age。我们使用InnoDB引擎,并指定字符集为utf8mb4。
接下来,我们要找到MySQL的数据目录,也就是它把数据文件存储在哪里。我们可以通过以下命令来查看:
我是Windows系统,所以数据目录就在C:\ProgramData\MySQL\MySQLServer5.7\Data\这个路径下。进入这个目录,我们可以看到有以下几个文件夹和文件:
flash:这是我们刚刚创建的数据库对应的文件夹。
mysql:这是MySQL自带的系统数据库对应的文件夹。
performance_schema:这是MySQL提供的性能监控数据库对应的文件夹。
ibdata1:这是InnoDB引擎的共享表空间文件,用于存储元数据、回滚段、插入缓冲等信息。
ib_logfile0和ib_logfile1:这是InnoDB引擎的重做日志文件,用于记录事务的变更信息,以保证事务的持久性和恢复能力。
我们只