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

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

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_schemaperformance_schema结合起来,让程序员可以更方便的了解MySQL服务器的一些性能信息。

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

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

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

数据的家——MySQL的数据目录相关推荐

  1. 华为云数据盘挂在及mysql数据库数据目录迁移到数据盘

    背景 前篇文章中安装了mysql,但是系统盘只有40G,以后肯定不够用,于是,又增加了200G的数据盘,那此时就需要挂在盘,并需要将mysql的数据存储移动到数据盘中 1.挂载 1)检查磁盘挂在 分明 ...

  2. python爬取新闻并归数据库_Python爬取数据并写入MySQL数据库操作示例

    Python爬取数据并写入MySQL数据库的实例 首先我们来爬取 http://html-color-codes.info/color-names/ 的一些数据. 按 F12 或 ctrl+u 审查元 ...

  3. scrapy爬虫储存到mysql_详解Python之Scrapy爬虫教程NBA球员数据存放到Mysql数据库

    获取要爬取的URL 爬虫前期工作 用Pycharm打开项目开始写爬虫文件 字段文件items # Define here the models for your scraped items # # S ...

  4. python爬取新闻存入数据库_Python爬取数据并写入MySQL数据库的实例

    按 F12 或 ctrl+u 审查元素,结果如下: 结构很清晰简单,我们就是要爬 tr 标签里面的 style 和 tr 下几个并列的 td 标签,下面是爬取的代码: #!/usr/bin/env p ...

  5. mysql迁移数据目录,这个坑你遇到过吗?

    mysql数据库在存储过程中,随着存储数据越来越多,有时会遇到存储的磁盘空间不足的情况,于是需要更换存储路径. 迁移过程主要有以下几步: 1.关闭mysql服务: 2.更改/etc/my.cnf下da ...

  6. 购物表单mysql还是mongodb_日志数据是选择mysql 还是 mongodb 还是 postgredb

    sql语句?select count(*) from tb where calldate='2011-01-20' group by path;select avg(times) from tb wh ...

  7. Linux虚拟机如何修改mysql的数据目录位置

    一.修改mysql所在数据的目录位置. 1.确认MySQL数据库存储目录  mysqladmin -u root -p variables | grep datadir 显示| datadir | / ...

  8. 【宋红康 MySQL数据库 】【高级篇】【03】MySQL的数据目录

    持续学习&持续更新中- 学习态度:守破离 [宋红康 MySQL数据库 ][高级篇][03]MySQL的数据目录 MySQL8的主要目录 数据文件的存放目录 命令存放目录 配置文件目录 数据库和 ...

  9. MySQL的数据目录

    MySQL的数据目录 1. MySQL 8 的主要目录结构 安装好MySQL 8 之后,我们查看如下的目录结构: 1. 1 数据库文件的存放路径 MySQL数据库文件的存放路径:/var/lib/my ...

最新文章

  1. Python换行符问题:\r\n还是\n?
  2. 菜鸟+Hologres=智能物流
  3. C# 在数组中判断是否存在某个数组值
  4. Eclipse 下用Maven构建ssh框架web工程
  5. 时间操作(Java版)—获取给定时间与当前系统时间的差值(以毫秒为单位)
  6. 完全分布式安装Hadoop,Hive,Hbase,Hwi,Zookeeper
  7. vrchat模型保存_VRChat简易教程3-往世界里导入模型和VRC接口初探
  8. mysql的启动脚本编写_老鸟带你开发专业规范的MySQL启动脚本
  9. 万物并作,吾以观复|OceanBase 政企行业实践
  10. 图表背后的秘密 | 技术指标讲解:唐奇安通道
  11. 悉尼大学计算机专业本科2019,2019申请悉尼大学读本科有哪些要求
  12. Linux align函数,linux内核中ALIGN解析(示例代码)
  13. Spring-IoCDI
  14. 使用ShareX+sm.ms实现截图后自动上传图片至图床
  15. php获取企业微信聊天内容,微信企业号开发获取用户信息的介绍
  16. VS开发Application生硬古怪的问题及原因汇总
  17. 【车载以太网测试从入门到精通】——以太网TCP/IP协议自动化测试(含CAPL源码)
  18. 要闻君说:必应(Bing)搜索引擎已在国内被屏蔽;Verizon媒体业务宣布裁员7%;小米率先发布折叠屏手机...
  19. 网站添加“富强·民主·爱国”鼠标点击特效美化
  20. 解决oracle11卸载,Oracle11完全卸载方法

热门文章

  1. 在网上看看非诚勿扰,要不要报名
  2. 世界最小量子计算机诞生,离子阱量子技术或成为最终赢家?
  3. 小白计算机视觉学习报告
  4. python 使用selenium 批量获取url的cookies
  5. PowerBuilder 11.x .NET开发视频教程
  6. autocad形源代码_在开放源代码库中使用AutoCAD文件格式
  7. MySQL的客户端/服务器架构
  8. 入门级c语言小游戏———实现三子棋(图文详解,代码可复制)
  9. ascii码,gbk编码,unicodo码,utf-8码
  10. ensp华为交换机基础命令