千锋教育-做有情怀、有良心、有品质的职业教育机构

手机站
千锋教育

千锋学习站 | 随时随地免费学

千锋教育

扫一扫进入千锋手机站

领取全套视频
千锋教育

关注千锋学习站小程序
随时随地免费学习课程

当前位置:首页  >  技术干货  > MySQL底层数据是如何存储的?

MySQL底层数据是如何存储的?

来源:千锋教育
发布人:xqq
时间: 2023-10-11 07:46:38 1696981598

一、MySQL底层数据的存储方式

MySQL是一个常见的关系型数据库管理系统(RDBMS),广泛用于各种应用程序中。在MySQL中,数据以表格的形式进行存储,表格中包含了若干列和行,每行代表一个记录。

1、物理存储结构

MySQL中的数据物理存储结构是由若干个数据块(Block)组成的,每个数据块的大小一般为16KB或32KB。MySQL中有两种数据块类型,分别是数据页和索引页。

数据页用于存储表中的数据记录,每个数据页中存储了多个数据记录。数据页的大小一般为16KB或32KB,可以通过配置文件进行设置。每个数据记录的大小取决于表的定义和实际数据大小,MySQL会根据需要动态调整数据记录的大小,从而实现更高效的空间利用。

索引页用于存储表的索引信息,每个索引页中存储了多个索引记录。索引页的大小也一般为16KB或32KB,可以通过配置文件进行设置。MySQL中支持多种索引类型,包括B+树、哈希表等,不同类型的索引页中存储的索引记录类型不同。

2、数据文件

MySQL中的数据文件是用于存储数据记录和索引记录的二进制文件,通常以.frm、.myd和.myi为后缀名。其中.frm文件是表的定义文件,用于记录表的结构和元数据信息;.myd文件是数据文件,用于存储表中的数据记录;.myi文件是索引文件,用于存储表的索引信息。

在MySQL中,每个表都对应一个数据文件和若干个索引文件,它们一起组成了MySQL的数据存储系统。MySQL中支持多种数据文件格式,包括MyISAM、InnoDB、MEMORY、CSV等,不同的数据文件格式对应不同的存储引擎。

3、日志文件

MySQL中的日志文件用于记录数据库操作的日志信息,包括事务日志、错误日志、慢查询日志等。其中,事务日志是MySQL中最重要的日志文件之一,用于记录数据库的变更操作,确保数据的一致性和完整性。

MySQL的事务日志包括两种类型,分别是redo日志和undo日志。redo日志记录了MySQL中的所有数据变更操作,包括插入、更新和删除等,用于在数据库崩溃或系统故障时恢复数据。undo日志记录了数据库中的回滚操作,用于回滚事务和撤销已经执行的变更操作。

声明:本站稿件版权均属千锋教育所有,未经许可不得擅自转载。
10年以上业内强师集结,手把手带你蜕变精英
请您保持通讯畅通,专属学习老师24小时内将与您1V1沟通
免费领取
今日已有369人领取成功
刘同学 138****2860 刚刚成功领取
王同学 131****2015 刚刚成功领取
张同学 133****4652 刚刚成功领取
李同学 135****8607 刚刚成功领取
杨同学 132****5667 刚刚成功领取
岳同学 134****6652 刚刚成功领取
梁同学 157****2950 刚刚成功领取
刘同学 189****1015 刚刚成功领取
张同学 155****4678 刚刚成功领取
邹同学 139****2907 刚刚成功领取
董同学 138****2867 刚刚成功领取
周同学 136****3602 刚刚成功领取
相关推荐HOT