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

这篇具有很好参考价值的文章主要介绍了数据的家——MySQL的数据目录。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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

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

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

什么是MySQL的数据目录?

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

如何确定MySQL的数据目录?

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

 数据目录的结构是什么?

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

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

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

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

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

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

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

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

这个是文档上面的

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

我看了一下我的,里面没有.frm文件,然后网上查了一下:MySQL8.0中不再单独提供b.frm,而是合并在b.ibd文件中。

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

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

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

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

系统表空间

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

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

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

独立表空间

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

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

 

其他的文件

数据目录下面还包括了一些其他的额外文件,例如服务器进程文件,服务器日志文件,证书秘钥文件等等。

文件系统对数据库的影响

MySQL的数据都是存放在文件系统中,所以就不得不受到一些制约。 比如说命名,表的大小,性能等方面。 例如:

数据库名称和表名称不得超过文件系统所允许的最大长度;

特殊字符的问题;

文件长度受文件系统最大长度限制

MySQL系统数据库简介

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

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

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

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

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

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

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

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

数据目录是页上面的部分,是存放于操作系统上面的文件系统上面的。文章来源地址https://www.toymoban.com/news/detail-453111.html

到了这里,关于数据的家——MySQL的数据目录的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【大数据】Linkis:打通上层应用与底层计算引擎的数据中间件

    Linkis 是微众银行开源的一款 数据中间件 ,用于解决前台各种工具、应用,和后台各种计算存储引擎间的连接、访问和复用问题。 Linkis,一个打通了多个计算存储引擎如 Spark 、 TiSpark 、 Hive 、 Python 和 HBase 等,对外提供统一 REST / WebSocket / JDBC 接口,提交执行 SQL 、 Pyspark 、

    2024年02月09日
    浏览(36)
  • mysql数据库数据如何迁移目录

    默认位置 C:ProgramDataMySQLMySQL Server 8.0 步骤2中Data文件夹就是mysql存放数据的位置 这里举例移动到E盘下 原来my.ini文件不要修改文件位置,如果修改需要另行学习

    2024年02月07日
    浏览(73)
  • MySQL高级篇第2章(MySQL的数据目录)

    MySQL数据库文件的存放路径:/var/lib/mysql/ 相关命令目录:/usr/bin(mysqladmin、mysqlbinlog、mysqldump等命令)和/usr/sbin。 配置文件目录:/usr/share/mysql-8.0(命令及配置文件),/etc/mysql(如my.cnf) 在MySQL8.0中打开: 2.3.1 InnoDB存储引擎模式 2.3.2 MyISAM存储引擎模式

    2024年02月15日
    浏览(34)
  • MySQL5.7数据目录结构

    以CentOS7为例,数据目录为 /var/lib/mysql/ ,其内容如下: 其中 mysql 、 sys 等为数据库,即一个数据库对应的一个目录。 ibdata1 存放的是 InnoDB 的元数据、变更缓冲区、双写缓冲区和撤销日志。 ib_logfile0 和 ib_logfile1 存放普通日志。 ib_buffer_pool 存放缓存池信息。 以 test 数据库为例

    2024年02月12日
    浏览(44)
  • MySQL 移动数据目录后启动失败

    GreatSQL社区原创内容未经授权不得随意使用,转载请联系小编并注明来源。 GreatSQL是MySQL的国产分支版本,使用上与MySQL一致。 作者: 王权富贵 文章来源:GreatSQL社区投稿 由于安装数据库时将MySQL的数据目录放在了根目录下,现在存储空间不足,想通过mv将数据目录移动到其他

    2023年04月23日
    浏览(62)
  • MySQL-02.MySQL的数据目录和表文件解析

    1.1 数据库文件的存放路径 MySQL数据库文件的存放路径 : /var/lib/mysql 从结果中可以看出,在我的计算机上MySQL的数据目录就是 /var/lib/mysql/ 。 1.2 MySQL相关命令目录 相关命令目录:/usr/bin(mysqladmin、mysqlbinlog、mysqldump等命令)和/usr/sbin。 1.3 配置文件目录 配置文件目录:/usr/shar

    2024年03月11日
    浏览(39)
  • ubuntu18 下更改 mysql 数据目录

    更改 MySQL 的数据目录需要注意以下几个步骤: 停止 MySQL 服务 在 Ubuntu 中,你可以使用以下命令停止 MySQL 服务: 复制现有数据 假设你的新的数据目录是  /new/dir/mysql ,你应该使用  rsync  复制现有的数据。这样可以保留文件和目录的权限。 更改 MySQL 配置 在  /etc/mysql/mysql

    2024年02月12日
    浏览(35)
  • 在linux系统中修改mysql数据目录

    1.查看 mysql 默认存储路径 在 /etc/mysql/mysql.conf.d/mysqld.cnf 中的 datadir 配置项。 2.停止 mysql 服务 3.移动或复制原数据目录 4.修改配置文件 修改 /etc/mysql/mysql.conf.d/mysqld.cnf 配置文件,把 datadir 修改为新数据目录: 5.修改启动文件 把: 修改为: 6.配置 AppArmor 访问控制规则 在最后添加

    2024年02月12日
    浏览(44)
  • ubuntu安装mysql8指定数据目录

    Ubuntu 22.04.3 LTS 更新到最新版本 添加 MySQL APT 仓库 执行命令期间需要按回车键,控制台提示 Press [ENTER] to continue or Ctrl-c to cancel. 安装 MySQL 在安装过程中,系统会提示你设置 root 用户的密码。 配置数据挂载目录 新目录为 /data/mysqldata 新建数据目录 将文件copy(MySQL 默认的数据目

    2024年02月02日
    浏览(38)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包