数据的家——MySQL的数据目录

news/2024/10/22 14:00:04/

之前学过了行格式,在往上面是页,最上层的也就学到了页。 现在的数据目录是什么?这之间有什么关系呢?带着这个问题,来继续学习。 

数据库和文件系统的关系是什么?

InnoDB和MyISAMy 是把表存储在磁盘上面的,而磁盘是归操作系统管理的,这个东西叫做文件系统。 用专业一点的话来说,InnoDB是把表存储在文件系统上面的。 当我们想要读取数据的时候,InnoDB会从文件系统中把数据读出来返回给我们,当我们想要写入数据的时候,存储引擎会把这些数据重新写回到文件系统。 

什么是MySQL的数据目录?

 MySQL服务器程序启动的时候,会到文件系统的某个目录下面加载一些文件,之后运行的过程中的产生的数据页会存储到这个目录下面的某些文件夹中,这个目录就是数据目录。 MySQL的安装目录和数据目录不是同一个东西。 

如何确定MySQL的数据目录?

 数据目录的结构是什么?

一:数据库在文件系统中的表示

每当新建一个数据库,会做两件事情

1. 在数据目录下面创建一个和数据库同名的子目录

2. 在该数据库名同名的目录下面创建一个db.opt文件,这个文件记录了该数据库的各种属性,比如说字符集和比较规则等等。

 我的数据和参考文章中的不一样,可能是MySQL的版本变了,存储这些数据方式也变了。

二:表在文件系统中的表示

这个是文档上面的

我看了一下我的

 是不一样的,咱们就先直接跳过

三:表数据是如何存储的?

这个就比较简单了,我们之前都学过,是通过页来实现,通过B+树把这些页给连接起来。 

此处也有一些补充知识点。 为了更好的管理这些页,InnoDB的大佬们提出了一个表空间或者文件空间的概念。每一个表空间可以被划分为很多很多的页,这些表数据就存放在某个表空间 下的某个页里。  这些表空间被划分为不同的类型,分别有系统表空间,独立表空间,其他类型的表空间。

系统表空间

 大小12M,是自扩展文件, 可以在MySQL启动的时候更改名称,更改大小,更改文件路径,设置自动扩展等等等

需要注意的一点是,在一个MySQL服务器中,系统表空间只有一份。从MySQL5.5.7到MySQL5.6.6之间的各个版本中,我们表中的数据都会被默认存储到这个 系统表空间

独立表空间

在MySQL5.6.6以及之后的版本中,InnoDB并不会把各个表的数据存储到系统表空间中,而是为每一个表建立了一个单独的表空间。 使用独立表空间的话,会在该表所属的数据库对应的子目录下面创建一个表示该表的独立表空间的文件,文件名和表明相同,同时使用 .ibd扩展名。

其他类型表空间

四:视图在文件中的存储(略)

五:其他的文件

服务器进程文件,服务器日志文件,证书秘钥文件等等。

文件系统对数据库的影响

MySQL的数据都是存放在文件系统中,所以就不得不受到一些制约。 比如说命名,表的大小,性能等方面。 例如:数据库名称和表名称不得超过文件系统所允许的最大长度;特殊字符的问题;文件长度受文件系统最大长度限制

MySQL系统数据库简介

 每次启动MySQL,都有一些默认自带的数据库,这些数据库一般都是不能动的,因为不知道是做什么的,现在来大致看一下。

mysql数据库是核心,存储了账户密码和权限信息,存储过程,事件的定义信息,日志信息,时区信息等等;

information_schema 这个数据库里面保存的是MySQL服务器维护的所有其他的数据库信息,有哪些表,哪些触发器,那些列,那些索引等等,不是用户的真实数据,是一些描述性的信息,有时候也叫做元数据。

performance_schema 这个数据主要是保存MySQL服务器运行过程中的一些状态信息,是MySQL服务器的一个性能监控(噢噢噢,原来MySQL还有这个好东西,刚好我最近需要优化考试系统的查询速度,有了这个或许和很方便)。 包括统计最近执行了哪些语句,在每个阶段花费的时间,内存的使用情况等等。

sys 这个数据库主要是通过视图的形式把information_schema performance_schema结合起来,让程序员可以更方便的了解MySQL服务器的一些性能信息。

回答一下文章开头的问题:

之前学过了行格式,在往上面是页,最上层的也就学到了页。 现在的数据目录是什么?这之间有什么关系呢?带着这个问题,来继续学习。

数据目录是页上面的部分,是存放于操作系统上面的文件系统上面的。


http://www.ppmy.cn/news/77034.html

相关文章

[数据结构]时间复杂度和空间复杂度

目录 1. 算法效率 2. 时间复杂度 时间复杂度的概念大O的渐进表示法时间复杂度举例 3. 空间复杂度 空间复杂度举例 1. 算法效率 算法效率分析分为两种:第一种是时间效率,第二种是空间效率。时间效率被称为时间复杂度,而空间效率被称作 空…

风云4A卫星行列号和经纬度查找表文件下载及解析

FY-4A是中国自主研发的静止气象卫星,其在太阳同步轨道上运行,每天可以全天候、全球范围内获取高空大气和地表的红外、可见光、微波等多种信息,对天气、气候研究及预报有着重要的作用。 一、风云卫星官网 https://www.nsmc.org.cn/nsmc/cn/ho…

Vulkan Tutorial 2 presentation

目录 5 窗口表面 6 交换链 7 图像视图 5 窗口表面 由于Vulkan是一个与平台无关的API,它自己不能直接与窗口系统对接。为了在Vulkan和窗口系统之间建立连接,将结果呈现在屏幕上,我们需要使用WSI(窗口系统集成)扩展。…

c# cad二次开发,类库选择集交互

c# cad二次开发,类库选择集交互 using Autodesk.AutoCAD.ApplicationServices; using Autodesk.AutoCAD.DatabaseServices; using Autodesk.AutoCAD.EditorInput; using Autodesk.AutoCAD.Geometry; using Autodesk.AutoCAD.Runtime; using System; using System.C…

从前序与中序遍历序列构造二叉树(java)

从前序与中序遍历序列构造二叉树 leetcode 105 题-原题链接题目描述解题思路往期经典二叉树递归题目: leetcode 105 题-原题链接 从前序与中序遍历序列构造二叉树 题目描述 给定两个整数数组 preorder 和 inorder ,其中 preorder 是二叉树的先序遍历&a…

CNVD - 5000w通用产品的收集方法

本文转载于:https://mp.weixin.qq.com/s?__bizMzg5OTY2NjUxMw&mid2247507214&idx1&sn0e6df46ee930cb35ab0650867cef8af5&chksmc04d5a30f73ad3261a6fa6a8cb8c4ddc4ee8fac2a58f495c05030adc2d27e3ead65264f24f75&mpshare1&scene23&srcid…

深度学习的定义和未来发展趋势

深度学习的定义和未来发展趋势 什么是深度学习数学和编程的基础知识深度学习的应用领域深度学习的常见算法和模型训练深度学习模型深度学习的未来 🏘️🏘️个人简介:以山河作礼。 🎖️🎖️:Python领域新星创作者&#…

我读故我在:《文凭社会》读后感

现在正是一年一度的答辩季,朋友圈有各种毕业季的苦尽甘来,也有更多的彷徨无助。就业,似乎越来越卷。 新来的实习生。本硕985,还有海外留学经历。这一届00后真的越来越强大了,让人汗颜。 虽然,每天干的活也不…