数据库 & 文件系统

存储引擎把表存储在磁盘上,操作系统用文件系统来管理磁盘,所以像 InnoDB 、 MyISAM 这样的存储引擎都是把表存储在文件系统上的。
当需要读取表中的数据时,存储引擎从文件系统中读取数据并返回
当需要写入数据时,存储引擎将数据写入文件系统

数据目录 & 安装目录

安装目录 下的bin目录,有很多可执行文件
数据目录,是存储运行时产生的数据
SHOW VARIABLES LIKE ‘datadir’; 查看数据目录的位置

数据目录

1. 数据库在文件系统中的表示

每个数据库,都对应数据目录下的一个子目录(文件夹),使用 CREATE DATABASE 数据库名 语句创建一个数据库的时候:

  1. 在数据目录下创建一个和数据库名同名的子目录
  2. 在子目录下创建一个名为db.opt的文件,这个文件中包含了该数据库的各种属性,比方说该数据库的字符集和比较规则。

2. 表在文件系统中的表示

1. 表结构

表名.frm 这个文件用于描述表结构

2. 表中的数据

不同存储引擎,存储数据的文件不同

1. InnoDB存储引擎如何存储数据


记录——页(包含多条记录)——表空间(文件空间,对应多个文件)
表空间:
1.系统表空间 ibdata1文件,可以存储表数据
在一个MySQL服务器中,系统表空间只有一份。从MySQL5.5.7到MySQL5.6.6之间的各个版本中,我们表中的数据都会被默认存储到这个 系统表空间。
2. 独立表空间 表名.ibd文件
在MySQL5.6.6以及之后的版本中,InnoDB并不会默认的把各个表的数据存储到系统表空间中,而是为每一个表建立一个独立表空间,也就是说我们创建了多少个表,就有多少个独立表空间

2. MyISAM是如何存储表数据的

test.frm
test.MYD 数据文件
test.MYI 索引文件

视图在文件系统中,只会存储一个视图名.frm的文件

数据库 数据目录相关推荐

  1. 记一次使用MySQL5.7数据库数据目录下的文件恢复数据到个人云主机(CentOS7)中MySQL5.7的过程

    一.背景 个人笔记本电脑主板挂了拿去维修了,手头就一个固态盘.因项目需要,不得不还原数据库到个人云主机(CentOS).由于没有数据库管理软件,所以只能使用固态盘中mysql的数据目录下的数据文件完成 ...

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

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

  3. java监听mysql_java实时监控mysql数据库变化

    对于二次开发来说,很大一部分就找找文件和找数据库的变化情况 对于数据库变化.还没有发现比较好用的监控数据库变化监控软件. 今天,我就给大家介绍一个如何使用mysql自带的功能监控数据库变化 1.打开数 ...

  4. linux mysql 更改MySQL数据库目录位置

    MySQL默认的数据文件存储目录为/var/lib/mysql.假如要把目录移到/home/data下需要进行下面几步: 1.home目录下建立data目录 cd /home mkdir data 2 ...

  5. linux下更改MySQL数据库存储目录

    先看一下默认MySQL数据库数据目录到底存放在哪里 mysqladmin -u root -p variables | grep datadir Enter password: | datadir   ...

  6. mysql root 无法建立数据库_MySQL - 在root用户下你跟我说无法建表!?

    问题场景描述 在某次操作中,我作死用 find 和 chown 命令行修改文件/文件夹的权限和所有者,后来简单粗暴地把 www 文件夹的权限改回755[1],把文件的权限改为644:所有者全部改为ro ...

  7. CentoS8 Mysql8 数据目录迁移

    Mysql数据库数据目录迁移 1 声明 本文的数据来自网络,部分代码也有所参照,这里做了注释和延伸,旨在技术交流,如有冒犯之处请联系博主及时处理. 2 数据目录迁移简介 一般我们是通过rpm包的方式安 ...

  8. lnp和mysql分开安装_毕业设计之LNP+DISCUZ +分离的数据库操作

    环境介绍: CentOS6.9最小化安装 https://nginx.org/download/nginx-1.16.1.tar.gz https://www.php.net/distribution ...

  9. mysql benchmark 测试工具_BenchmarkSQL数据库基准测试工具

    之前有介绍过sysbench基准测试工具,类似的开源测试工具还有BenchmarkSQL,一个JDBC基准测试工具,内嵌了TPC-C测试脚本,也支持很多数据库,如PostgreSQL.Oracle和M ...

最新文章

  1. 运动是性价比最高的投资
  2. 15 年工龄的资深技术专家职场历程自述
  3. powerDesigner 正向工程生成sql注释问题 (mysql注释问题)
  4. python 自动化-Python API 自动化实战详解(纯代码)
  5. 爬虫python的爬取步骤-Python爬虫爬取数据的步骤
  6. xp下发布wcf时遇到的问题_解决方法
  7. MAKEWORD(2,2)解释
  8. 依赖注入通俗解释_我如何向团队解释依赖注入
  9. 【债券】可转换债券基本概念
  10. 问题:get_params() missing 1 required positional argument: 'self' 之解决
  11. 9 条非常强大的 JavaScript 技巧
  12. OpenGL基础20:镜面光照
  13. Java基础—封装继承多态(详细)
  14. FFmpeg系列-2-命令行工具之FFmpeg
  15. 在线XML转JSON工具
  16. Linux网络问题排查
  17. python爬取拉钩网招聘信息
  18. 简明python教程五----数据结构
  19. 何恺明的ResNet引用量突破10万!
  20. 消愁计算机数字按键,明日之后2019最新钢琴谱数字编码顺序大全:纸短情长、起风了、往后余生[多图]...

热门文章

  1. R-可视化(五):饼图/圆环图
  2. 人话解读LGPLv3
  3. java实现交集并集差集
  4. Brat 标注工具 配置文件 详细说明
  5. mpvue实现类似通讯录锚点
  6. ioredis自定义函数以及在ts声明文件库添加声明
  7. SQL中grant的用法
  8. vue实现未登录不能访问某些页面
  9. vue-cli中简洁版日历节假日设置功能
  10. 热风枪的温度设置(与焊锡有无含铅有关)和使用注意