iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >Mysql和文件系统的关联详情
  • 608
分享到

Mysql和文件系统的关联详情

2024-04-02 19:04:59 608人浏览 独家记忆
摘要

目录前言Mysql数据目录数据目录相关结构数据库存储结构表结构存储表数据存储InnoDB存储引擎表数据存储MyISAM存储引擎表数据存储特殊视图存储前言 在linux中采用文件系统管理磁盘,而mysql常用的存储引擎如I

前言

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文件系统内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

您可能感兴趣的文档:

--结束END--

本文标题: Mysql和文件系统的关联详情

本文链接: https://www.lsjlt.com/news/34240.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

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

下载Word文档
猜你喜欢
  • Mybatis表的关联查询详情
    目录导语什么时候用<resultMap>标签映射什么时候用<association>&<collection>Mybatis表的关联查询一对多查询多对一查询一...
    99+
    2024-04-02
  • Docker核心组件之联合文件系统详解
    目录1. 联合文件系统的定义2. 配置 Docker 的 AUFS 模式3. AUFS 工作原理3.1 AUFS 如何存储文件3.2 AUFS 如何工作4. AUFS 演示4.1 准...
    99+
    2024-04-02
  • 分布式系统中的文件管理和Go语言编程有什么关联?
    随着互联网的迅速发展,分布式系统在我们的生活中扮演着越来越重要的角色。在分布式系统中,文件管理是一个至关重要的方面。文件管理的好坏直接影响着系统的性能和稳定性。同时,Go语言作为一种并发性强、易于编写高性能程序的编程语言,也在分布式系统中...
    99+
    2023-08-02
    编程算法 文件 分布式
  • Python函数和文件操作详情
    目录前言一、函数二、自定义函数1.创建函数2.调用函数3.函数默认值4.收集函数(可变函数)5.全局与局部6.匿名函数lambda7.内嵌函数三、常用内置函数1.max和min2.a...
    99+
    2024-04-02
  • 详谈jpa中表的@OneToMany等关联关系
    目录一、@OneToOne关系映射1、通过外键的方式2、通过关联表的方式来保存一对一的关系二、@OneToMany 和 @ManyToOne三、多对多 @ManyToMany再次更新...
    99+
    2024-04-02
  • 如何实现XP系统制作修复EXE文件关联的批处理
    本篇内容介绍了“如何实现XP系统制作修复EXE文件关联的批处理”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!  1、在桌面上空白处鼠标右键,...
    99+
    2023-06-13
  • ASP中的对象、Unix系统和函数有何关联?
    ASP是一种服务器端脚本语言,常用于Web开发。它的设计理念是让Web开发者能够轻松地生成动态Web页面,提供丰富的功能和交互性。而在ASP中,对象、Unix系统和函数是密不可分的。本文将为您介绍它们之间的关联。 对象 在ASP中,对...
    99+
    2023-10-28
    对象 unix 函数
  • 关于MySQL中的 like操作符详情
    1、简介 当对未知或者说知道某一部分的值进行过滤时,可以使用like操作符;like操作符用于模糊匹配。 like支持两个通配符,它们分别是: %通配符,用于匹配多个字...
    99+
    2024-04-02
  • Windows系统中的DLL文件详解
    DLL(Dynamic Link Library)文件是Windows系统中的一种动态链接库文件,它包含了一组可被应用程序调用的函数...
    99+
    2023-09-15
    Windows
  • golang中tar压缩和解压文件详情
    目录1、压缩并输出tar.gz文档 2、tar解压缩 查看官方文档,官方自带的演示: // 官方演示 package main import ( "archive/t...
    99+
    2024-04-02
  • 关于盗版win XP/win7升级Windows 10系统详情
    Windows 10终于尘埃落定了,今夏将在190个国家和地区发布,支持111种语言。但在升级方式上,恐怕很多人都没有想到。我们先看看官方是怎么说 运行Windows 7、Windows 8.1和Windows Phon...
    99+
    2023-06-12
    win XP win7 升级 详情 盗版 Windows 10系统
  • Vista系统中的文件和文件夹加密
    加密文件/文件夹的方法     要在Windows Vista加密文件/文件夹,可按下面的操作步骤进行:     1、在资源管理器中找到待保护的文件/文件夹,右...
    99+
    2023-05-23
    文件 加密 和文 系统 文件夹 Vista
  • navicat和MySQL的关系
    navicat是mysql数据库的管理工具,关系包括:连接和访问:navicat可连接mysql服务器并管理数据库和数据。查询和数据操作:内置sql编辑器和数据操作工具,可执行查询和操作...
    99+
    2024-04-22
    mysql navicat 可视化数据
  • Linux中文件系统truncate.c详解
    目录linux-0.11 文件系统truncate.c详解free_indfree_dindtruncateLinux-0.11 文件系统truncate.c详解 free_ind static void free_in...
    99+
    2023-03-24
    文件系统truncate.c linux 文件系统truncate.c
  • 在python中读取和写入CSV文件详情
    目录前言1.导入CSV库2.对CSV文件进行读写2.1 用列表形式写入CSV文件2.2 用列表形式读取CSV文件2.3 用字典形式写入csv文件2.4 用字典形式读取csv文件结语前...
    99+
    2024-04-02
  • python 中的requirements.txt 文件的使用详情
    目录实战场景生成 requirements.txt 文件潜在问题使用 requirements.txt 文件的好处备注使用 pip-compile实战场景 在部署Python应用时,...
    99+
    2024-04-02
  • PHP 和 Numpy 有什么联系?探究二者的关联
    PHP 和 Numpy 都是在不同领域中使用的编程语言,分别用于 Web 开发和科学计算。尽管它们之间存在着明显的差异,但是它们也有一些相同点。在本文中,我们将探究 PHP 和 Numpy 的关联,以及它们如何在不同领域中发挥作用。 PH...
    99+
    2023-09-14
    leetcode numpy api
  • PHP 中的路径加载和分布式系统有何关联?
    在分布式系统中,不同的服务和模块之间需要进行通信和数据传输,而路径加载则是 PHP 中用于查找和引入文件的机制。这两个看似不相关的概念,实际上在分布式系统中起着至关重要的作用。 一、路径加载的基本原理 在 PHP 中,要引入一个文件,可以...
    99+
    2023-06-27
    path load 分布式
  • win7程序和文件无法关联如何解决
    如果您在Windows 7中遇到了程序和文件无法关联的问题,可以尝试以下解决方法:1. 重新关联文件类型:右键单击无法关联的文件,选...
    99+
    2023-09-11
    win7
  • Mysql关联查询的几种方式(详解)
    在关系型数据库中,要进行多表查询,一般都会使用join连接。join连接的本质其实类似与集合的交并操作,Mysql实现关联查询常见的几种方式如下; 目录 1、左连接 2、右连接 3、内连接 4、全连接 5、左外连接 6、右外连接 7、全外连...
    99+
    2023-09-25
    mysql关联查询
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作