我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Mysql和文件系统的关联详情

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Mysql和文件系统的关联详情

前言

在linux中采用文件系统管理磁盘,而Mysql常用的存储引擎如InnoDB、MyISAM采用的是文件存储,自然和文件系统挂钩,那么Mysql都有哪些地方用到了文件系统呢?下面聊聊

Mysql数据目录

Mysql系统启动文件(默认my.cnf)中可能会指定Mysql的一个全局系统变量datadir,这个变量可以指定Mysql的数据存储目录,

如下:

Mysql和文件系统的关联详情

或者采用查询变量的形式获取(下面所有演示截图都是从这个目录出发)

mysql> show variables like '%datadir%';
+---------------+-------------------------------+
| Variable_name | Value                         |
+---------------+-------------------------------+
| datadir       | /usr/local/mysql-5.7.26/data/ |
+---------------+-------------------------------+
1 row in set (0.00 sec)

数据目录相关结构

数据库存储结构

每创建完一个数据库会在预定义的datadir路径下创建一个以数据库名同名的文件夹

mysql> create database test_data;
Query OK, 1 row affected (0.00 sec)

Mysql和文件系统的关联详情

创建完test_data文件夹,会在该文件夹下创建一个db.opt的文件,该文件用于存放数据库的属性如字符集和比较规则。

Mysql和文件系统的关联详情

有一点我们需要注意系统自带的数据库有四个分别是mysql(存储Mysql用户权限等信息)、information_schema(其它数据库描述信息)、performance_schema(存储Mysql运行时状态等)、sys(服务器性能视图),其中除information_schema外都会创建一个文件夹。

表结构存储

如给上述创建的test_data数据库新建一个表

CREATE TABLE test_table (
  name varchar(100) DEFAULT NULL
) ENGINE=InnoDB

那么Mysql会在数据库同名文件夹也就是test_data上新建一个同表名的文件test_table.frm,这个文件用于描述表的字段,索引、约束等等

Mysql和文件系统的关联详情

表数据存储

表数据存储不同的存储引擎,存储文件是不同的,以常用InnoDB和MyISAM举例。

InnoDB存储引擎表数据存储

InnoDB存储引擎都是以页为单位管理存储空间的,一个数据页的大小为16k,而InnoDB为了方便管理引入表空间的概念,一个表空间中可能包含多个数据页,当然表空间又分为几种如下。

系统表空间

从Mysql版本5.5.7到5.6.6之间的版本默认将表数据放入系统表空间中,在默认情况下数据目录的位置会自动生成一个文件名为ibdata1的文件,该文件大小为12M,

如下;

Mysql和文件系统的关联详情

这个文件的大小并不是固定的,可以自增长,这意味着该文件存储不下时可以自动扩充大小。

独立表空间

在Mysql版本从5.6.6后不再存储到系统表空间,而是存储到独立表空间,独立意味着表与表之间的数据独立开来,Mysql会为每一个表建立一个独立的空间,有多少个表就有多少个独立空间,所以当我们执行建表语句

-- 默认InnoDB存储引擎
CREATE TABLE test_table (
  name varchar(100) DEFAULT NULL
) ENGINE=InnoDB

会在当前数据库同名的目录下新建一个同表名的idb文件:

Mysql和文件系统的关联详情

至于用户想选择系统表空间还是独立表空间可以由用户自己决定,通过修改系统变量innodb_file_per_table就可以实现,为0表示使用系统表空间,为1表示使用独立表空间,这里需要注意的是修改该系统参数只对新建表生效,至于修改系统参数之前的表需要手动修改。

MyISAM存储引擎表数据存储

MyISAM的存储引擎和InnoDB存储引擎在文件系统上的最大区别就是MyISAM将索引和数据文件分开,InnoDB强调的是索引既数据,就是因为这样所以MyISAM存储引擎的表由三个文件描述

  • 表名.frm:描述表结构,索引,约束等。
  • 表名.MYD:存储表数据。
  • 表名.MYI:存储表索引。

如下创建测试表:

CREATE TABLE `test_table_myisam` (
  `name` varchar(100) DEFAULT NULL
) ENGINE=MyISAM

Mysql和文件系统的关联详情

特殊视图存储

create view view_test as select * from test_table;

因为视图本质就是虚拟表,仅仅是查询语句的别名,存储时不保存视图的数据,仅仅只保存视图的表结构,所以创建视图仅仅会创建一个与视图同名的frm文件。

Mysql和文件系统的关联详情

到此这篇关于Mysql和文件系统的关联详情的文章就介绍到这了,更多相关Mysql文件系统内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Mysql和文件系统的关联详情

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

mysql如何删除数据表和关联的数据表删除详情

目录前言一、mysql删除没有被关联的表二、删除被其他表关联的主表前言删除数据表的时候,表的定义和表中所有的数据均会被删除。因此,在进行删除操作前,最好对表中的数据做一个备份,以免造成无法挽回的后果。mysql删除数据表分为两种情况;
2022-07-26

Linux和GNU系统的关系详解

目录每天都在运行的linux系统其实是?Linux内核 和 GNU 系统简介Linux内核 和 GNU 系统之间的关系详解总结每天都在运行的Linux系统其实是? 今天广泛使用的 GNU 版本通常被称为“Linux”
2022-06-04

blkid命令与Linux文件系统健康检查工具的关联

blkid命令主要用于显示或查询块设备的属性,特别是文件系统的UUID和LABEL。而Linux文件系统健康检查工具,如fsck,则用于检查和修复文件系统错误。blkid命令与Linux文件系统健康检查工具之间存在关联,但它们各自承担不同的
blkid命令与Linux文件系统健康检查工具的关联
2024-10-11

Android中的类文件和类加载器详情

目录一、Java中的类加载器二、Android中的类加载器2.1 BootClassLoader2.2 PathClassLoader2.3 DexClassLoader2.4 InMemoryDexClassLoader三、Dex文件3.
Android中的类文件和类加载器详情
2022-06-07

如何实现XP系统制作修复EXE文件关联的批处理

本篇内容介绍了“如何实现XP系统制作修复EXE文件关联的批处理”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!  1、在桌面上空白处鼠标右键,
2023-06-13

Windows系统中的DLL文件详解

DLL(Dynamic Link Library)文件是Windows系统中的一种动态链接库文件,它包含了一组可被应用程序调用的函数和数据。DLL文件的作用是提供可重用的代码和资源,以便多个应用程序可以共享它们,从而实现代码的模块化和节省系
2023-09-15

Vista系统中的文件和文件夹加密

加密文件/文件夹的方法 要在Windows Vista加密文件/文件夹,可按下面的操作步骤进行: 1、在资源管理器中找到待保护的文件/文件夹,右键单击选择“属性&AGRxwrdquo;; 2、在&ldqu
2023-05-23

Linux中的EXT系列文件系统格式详解

linux文件系统常见的硬盘如上图所示,每个盘片分多个磁道,每个磁道分多个扇区,每个扇区512字节,是硬盘的最小存储单元,但是在操作系统层面会将多个扇区组成块(block),是操作系统存储数据的最小单元,通常是8个扇区组成4K字节的块。 对
2022-06-04

Node.js测试中的Mock文件系统详解

Mock文件系统相关的工具包括:Mock fs 模块的工具mock-fs 。Mock require 模块的工具mock-require 。安装 mock-fs和 mock-require 都是NPM软件包,在项目中可通过npm直接安装:n
2022-06-04

windows7系统图标变成相同的问题由于文件关联被修改所导致

不知道你有没有碰到过这样的问题,在win7系统中的桌面图片都变成相同,大家还可能搞不清楚是什python么状况,其实这是由于一些误操作引起http://www.cppcns.com的,本教程为大家提供解决方法。 这个问题是由于快捷方式类型的
2023-05-30

FAT、HPFS和NTFS文件系统的概述

FAT(File Allocation Table)是一种较早期的文件系统,最初用于DOS操作系统和早期版本的Windows操作系统。它使用了一种称为文件分配表的数据结构来跟踪文件和文件夹的位置和存储。FAT文件系统具有简单、可兼容性强的特
2023-09-08

编程热搜

目录