MySQL的数据目录

导读:

  根据前面的所学知识,我们知道了InnoDB存储引擎存储数据的数据结构、存储过程,而被组织好的数据则被存储在操作系统的磁盘上,当我们在对表数据进行增删改查时,其实就是InnoDB存储引擎与磁盘的交互。

  此外,操作系统中对磁盘的管理归属于文件系统,所以我们也可将数据增删改查的过程称为是InnoDB存储引擎与文件系统的交互。之前我们只是通过工具对数据库中的数据进行操作,并没有真正看到过数据库、表等存储文件,接下来我们就来了解一下在文件系统中,MySQL是以什么样的形式对数据进行的存储?保存了哪些数据?…

一、数据目录

  MySQL服务器程序在启动时会在文件系统的某个目录下加载一些文件,之后在运行过程中产生的数据也都会存储到这个目录下的某些文件中,这个目录就称为数据目录。

注:数据目录是用来存储MySQL运行过程中产生的数据,和安装目录不同,一定要区分开。

  数据目录对应的系统变量为 datadir,我们可以通过以下语句查询自己本地计算机的数据目录路径:

二、数据目录的结构

  MySQL运行过程中的产生的数据库、表、视图、触发器等用户数据都会被存储到数据目录下,此外还有一些其本身所携带的数据。

1、数据库

  在创建数据库时,在文件系统中会产生如下变化:

  • 在数据目录下,创建一个和数据库名同名的文件夹。
  • 在创建的数据库同名文件夹下创建一个名为 db.opt 的文件,这个文件中包含了该数据库的各种属性,比方说该数据库的字符集和比较规则是个啥。

  以下是我本地创建的一个 blog 数据库的存储形式:

2、表

  文件系统中存储的表数据分为两部分:

  • 表结构:用于存储表的基本属性,比如表名、字符集、比较规则等,文件名以".frm"为后缀。
  • 表数据:InnoDB以数据页为基本单位组织、存储数据,为了更好的管理这些页,设计InnoDB的大叔们提出了一个表空间或者文件空间(英文名:table space 或者 file space)的概念,这个表空间是一个抽象的概念,它可以对应文件系统上一个或多个真实文件(不同表空间对应的文件数量可能不同)。每一个表空间可以被划分为很多很多很多个页,我们的表数据就存放在某个表空间下的某些页里。设计InnoDB的大叔将表空间划分为几种不同的类型:
    • 系统表空间(system tablespace):从 MySQL5.5.7 到 MySQL5.6.6 之间的各个版本中,MySQL表中的数据都会被默认存储到这个系统表空间。
    • 独立表空间(file-per-table tablespace):在 MySQL5.6.6 以及之后的版本中,InnoDB并不会默认的把各个表的数据存储到系统表空间中,而是为每一个表建立一个独立表空间,也就是说我们创建了多少个表,就有多少个独立表空间。

 注1:系统表空间可以对应文件系统上一个或多个实际的文件,默认情况下,InnoDB会在数据目录下创建一个名为ibdata1、大小为12M的自扩展文件。

注2:每个表的独立表空间被存储在数据目录下同名数据库文件夹下,文件名与表名一致,以".ibd"为后缀。

3、视图

  MySQL中的视图其实是虚拟的表,也就是某个查询语句的一个别名而已,所以在存储视图的时候是不需要存储真实的数据的,只需要把它的结构存储起来就行了。和表一样,描述视图结构的文件也会被存储到所属数据库对应的子目录下边,只会存储一个视图名.frm的文件。

4、其他文件

除了上述用户数据外,数据目录下还包括为了更好运行程序的一些额外文件,主要包括这几种类型的文件:

  • 服务器进程文件:我们知道每运行一个MySQL服务器程序,都意味着启动一个进程。MySQL服务器会把自己的进程ID写入到一个文件中。
  • 服务器日志文件:在服务器运行过程中,会产生各种各样的日志,比如常规的查询日志、错误日志、二进制日志、redo日志等。
  • 默认/自动生成的SSL和RSA证书和密钥文件:主要是为了客户端和服务器安全通信而创建的一些文件。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/diannao/90303.shtml
繁体地址,请注明出处:http://hk.pswp.cn/diannao/90303.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Web前端开发: :has功能性伪类选择器

:has功能性伪类选择器::has() 是 CSS 中的一个功能性伪类选择器,它允许开发者根据元素的后代元素、兄弟元素或后续元素的存在或状态来选择目标元素。它本质上是一个“父选择器”或“关系选择器”,解决了 CSS 长期以来无法根据子元素反向选择父元素的痛点…

深度学习8(梯度下降算法改进2)

目录 RMSProp 算法 Adam算法 学习率衰减 RMSProp 算法 RMSProp(Root Mean Square Prop)算法是在对梯度进行指数加权平均的基础上,引入平方和平方根。 其中e是一个非常小的数,防止分母太小导致不稳定,当 dw 或 db 较大时,(du)2,(db)2会较大&…

JAVA面试宝典 -《网络编程核心:NIO 与 Netty 线程模型详解》

网络编程核心:NIO 与 Netty 线程模型详解 文章目录网络编程核心:NIO 与 Netty 线程模型详解一、传统 BIO 模型:排队买奶茶的阻塞模式 🥤1.1 专业解释1.2 简单点比喻1.3 简单示例二、NIO 模型:智能叫号餐厅系统 &#x…

蓝桥杯 第十六届(2025)真题思路复盘解析

本文以洛谷平台所提供的题目描述及评测数据为基础进行讲解。 前言:这是本人的蓝桥杯试卷,大概排省一前40%的位置,实际上这届题目偏难,我没有做出太多的有效得分。我把当时的思路和现在学习的思路都复盘进来,希望给大家…

兰顿蚂蚁路径lua测试

兰顿蚂蚁local p0 local x,y,z0,7,0 local function add() local result,id Block:getBlockID(x,y,z)if id1 thenBlock:destroyBlock(x,y,z,false) pp90 elseBlock:setBlockAll(x,y,z,1,0) pp-90 end x,zx-math.floor(0.5math.sin(math.rad(p))),z-math.floor(0.5math.cos(m…

【Axure RP】什么是Axure?Axure可以用来做什么?

【Axure RP】什么是Axure?Axure可以用来做什么? 目录【Axure RP】什么是Axure?Axure可以用来做什么?Axure RP简介Axure RP 是什么?Axure RP核心功能和应用场景Axure RP简介 Axure RP 是什么? Axure RP 是一…

Java项目:基于SSM框架实现的畅玩北海旅游网站管理系统【ssm+B/S架构+源码+数据库+毕业论文】

摘 要 现代经济快节奏发展以及不断完善升级的信息化技术,让传统数据信息的管理升级为软件存储,归纳,集中处理数据信息的管理方式。本畅玩北海旅游网站就是在这样的大环境下诞生,其可以帮助管理者在短时间内处理完毕庞大的数据信息…

NuxtJS中网络请求模块的封装与最佳实战

在网络开发中,封装一个简洁、高效的网络请求模块对于项目的可维护性和扩展性至关重要。本文将详细介绍如何在NuxtJS中封装一个通用的网络请求模块,并结合最佳实践来说明如何使用它来进行网络请求。良好的代码结构和封装,不但结构清晰还能够大…

云归子批量混剪软件批量剪辑软件批量分割视频更新记录

www.yunguizi.com 优化显卡硬件加速配置 ⚡ 优化 2025年07月07日 版本 v1.1.6 优化显卡硬件加速配置 修复了一些重要内容 🐛 修复 2025年07月06日 版本 v1.1.6 修复了一些重要内容 重构读写机制 ⚡ 优化 2025年07月06日 版本 v1.1.6 优化了一些重要内容;…

SpringBoot校园外卖服务系统设计与实现源码

概述 基于SpringBoot开发的校园外卖服务系统,实现了从外卖管理到订单处理的全流程数字化解决方案,包含外卖管理、订单处理、用户管理等全方位功能。 主要内容 核心功能模块: ​​个人信息管理​​: 修改密码个人信息修改 ​​…

东软8位MCU低功耗调试总结

简介主控选用8位ES7P7021,应用于磁吸无线充电场景,有一个双向C口(IP5219),MCU控制电量灯显示,通过IIC控制C口的降额,插入TYPE-C线之后有一个外部中断信号,触发MCU唤醒,开…

什么是 3D 文件?

3D 文件是 3D 对象的数字表示形式,可以在计算机辅助设计 (CAD) 软件中创建或编辑。它们包含有关物体的形状、大小和结构的信息,对 3D 打印过程至关重要。3D 文件格式允许在不同的程序和打印机之间交换 3D 模型,并确定模…

语言模型 RLHF 实践指南(一):策略网络、价值网络与 PPO 损失函数

在使用 Proximal Policy Optimization(PPO)对语言模型进行强化学习微调(如 RLHF)时,大家经常会问: 策略网络的动作概率是怎么来的?价值网络的得分是如何计算的?奖励从哪里来&#xf…

日常--记一次gitlab Runner配置与CI/CD环境搭建流程

文章目录一、前言二、相关知识1.相关定义1.什么是 CI?2.什么是 CD?2.CI/CD 构建块与工具链3.为什么要使用 CI/CD?三、准备四、实现1.Runner安装与配置1.更新源2.安装Runner3.注册Runner4.启动Runner5.查看Runner信息2.CI/CD流程测试1.CI/CD构…

东方仙盟AI数据中间件使用教程:开启数据交互与自动化应用新时代——仙盟创梦IDE

一、启动未来之窗AI 二、初始化数据接口三、便捷接口数据进入东方仙盟获取接口标准四、同步参数仙界界牌,冥界界牌,仙盟界牌 五、开始同步六、东方仙盟青云剑魂架构在当今数字化浪潮下,数据的采集、处理与传输成为众多应用场景的核心需求。而…

Rust 仿射类型(Affine Types)

在 Rust 中,仿射类型(Affine Types) 是所有权系统的理论基础,它规定了每个值有且仅有一次使用机会。这与线性类型(必须恰好使用一次)有所不同,允许值未被使用就被丢弃。Rust 中的仿射类型核心特…

python库 arrow 库的各种案例的使用详解(更人性化的日期时间处理)

文章目录 一、arrow概述1.1 arrow介绍1.2 安装 arrow1.3 注意事项二、基本使用2.1 创建 Arrow 对象2.2 格式化输出2.3 时间运算三、高级功能3.1 时区处理3.2 时间范围3.3 时间间隔四、实际应用案例4.1 日志时间处理4.2 会议时间提醒4.3 国际化时间显示5. Arrow 与 datetime 互操…

window 服务器上部署前端静态资源以及nginx 配置

最近搞了一台境外服务器 这种境外服务器是不可以配置域名的 但是可以使用ip访问 但是如果需要 配置 需要下载nginx nginx: download 我这个是windows 的 服务器 所以下载windows 的nginx 下载完成以后 这个里面的html 文件 就是前端项目 里面必须要有index.html文件 部署…

行业实践案例:医疗行业数据治理的挑战与突破

“医疗数据不仅是资源,更关乎生命。” ——医疗行业的数据治理,是合规、安全、质量与智能化的多重挑战。 📘 本文目录 为什么医疗行业亟需数据治理? 医疗行业数据治理的独特挑战 医疗数据治理体系设计原则 关键能力模块与实践案例 工具选型与落地建议 总结与下一步 1️⃣ …

单细胞转录组学和空间转录组学数据的整合方法

文章目录问题1:现有技术是否可以拿取固定数目的细胞进行组合形成spot问题2:是否有关于这方面的研究问题3:相关论文推荐一、细胞反卷积的核心目标与挑战二、单细胞与空间转录组数据的整合方法分类1. 概率型方法(Probabilistic-base…