Geeks_Z の Blog Geeks_Z の Blog
首页
  • 学习笔记

    • 《HTML》
    • 《CSS》
    • 《JavaWeb》
    • 《Vue》
  • 后端文章

    • Linux
    • Maven
    • 汇编语言
    • 软件工程
    • 计算机网络概述
    • Conda
    • Pip
    • Shell
    • SSH
    • Mac快捷键
    • Zotero
  • 学习笔记

    • 《数据结构与算法》
    • 《算法设计与分析》
    • 《Spring》
    • 《SpringMVC》
    • 《SpringBoot》
    • 《SpringCloud》
    • 《Nginx》
  • 深度学习文章
  • 学习笔记

    • 《PyTorch》
    • 《ReinforementLearning》
    • 《MetaLearning》
  • 学习笔记

    • 《高等数学》
    • 《线性代数》
    • 《概率论与数理统计》
  • 增量学习
  • 哈希学习
GitHub (opens new window)

Geeks_Z

AI小学生
首页
  • 学习笔记

    • 《HTML》
    • 《CSS》
    • 《JavaWeb》
    • 《Vue》
  • 后端文章

    • Linux
    • Maven
    • 汇编语言
    • 软件工程
    • 计算机网络概述
    • Conda
    • Pip
    • Shell
    • SSH
    • Mac快捷键
    • Zotero
  • 学习笔记

    • 《数据结构与算法》
    • 《算法设计与分析》
    • 《Spring》
    • 《SpringMVC》
    • 《SpringBoot》
    • 《SpringCloud》
    • 《Nginx》
  • 深度学习文章
  • 学习笔记

    • 《PyTorch》
    • 《ReinforementLearning》
    • 《MetaLearning》
  • 学习笔记

    • 《高等数学》
    • 《线性代数》
    • 《概率论与数理统计》
  • 增量学习
  • 哈希学习
GitHub (opens new window)
  • Linux

  • Java

  • 微服务笔记

  • MySQL

    • 基础篇

    • MySQL架构篇

      • Linux下MySQL的安装与使用
      • MySQL的数据目录
        • 用户与权限管理
        • 逻辑架构
        • 存储引擎
        • 数据库日志
        • 主从复制
        • 数据库备份与恢复
        • 数据库事务
        • 事务日志
        • 锁
        • 多版本并发控制
        • MySQL索引及调优篇
        • 性能分析工具的使用
      • MySQL问题清单
    • Nginx

    • HTML

    • CSS

    • JavaWeb

    • Vue

    • Git

    • 开发规范

    • SpringCloud微服务权限系统

    • bug

    • Software

    • ProgramNotes
    • MySQL
    • MySQL架构篇
    Geeks_Z
    2023-01-17
    目录

    MySQL的数据目录

    第02章 MySQL的数据目录

    1. MySQL8的主要目录结构

    find / -name mysql
    
    1
    1.1 数据库文件的存放路径
    show variables like 'datadir'; # /var/lib/mysql/
    
    1
    1.2 相关命令目录

    相关命令目录:/usr/bin 和/usr/sbin。

    1.3 配置文件目录

    配置文件目录:/usr/share/mysql-8.0(命令及配置文件),/etc/mysql(如my.cnf)

    2. 数据库和文件系统的关系

    2.1 表在文件系统中的表示
    2.3.1 InnoDB存储引擎模式

    1. 表结构

    为了保存表结构,InnoDB在数据目录下对应的数据库子目录下创建了一个专门用于描述表结构的文件

    表名.frm
    
    1

    2. 表中数据和索引

    ① 系统表空间(system tablespace)

    默认情况下,InnoDB会在数据目录下创建一个名为ibdata1、大小为12M的自拓展文件,这个文件就是对应的系统表空间在文件系统上的表示。

    ② 独立表空间(file-per-table tablespace)

    在MySQL5.6.6以及之后的版本中,InnoDB并不会默认的把各个表的数据存储到系统表空间中,而是为每一个表建立一个独立表空间,也就是说我们创建了多少个表,就有多少个独立表空间。使用独立表空间来存储表数据的话,会在该表所属数据库对应的子目录下创建一个表示该独立表空间的文件,文件名和表名相同。

    表名.ibd
    
    1

    MySQL8.0中不再单独提供表名.frm,而是合并在表名.ibd文件中。

    ③ 系统表空间与独立表空间的设置

    我们可以自己指定使用系统表空间还是独立表空间来存储数据,这个功能由启动参数innodb_file_per_table控制

    [server] 
    innodb_file_per_table=0 # 0:代表使用系统表空间; 1:代表使用独立表空间
    
    1
    2

    ④ 其他类型的表空间

    随着MySQL的发展,除了上述两种老牌表空间之外,现在还新提出了一些不同类型的表空间,比如通用表空间(general tablespace)、临时表空间(temporary tablespace)等。

    2.3.2 MyISAM存储引擎模式

    1. 表结构

    在存储表结构方面, MyISAM 和 InnoDB 一样,也是在数据目录下对应的数据库子目录下创建了一个专门用于描述表结构的文件

    表名.frm
    
    1

    2. 表中数据和索引

    在MyISAM中的索引全部都是二级索引,该存储引擎的数据和索引是分开存放的。所以在文件系统中也是使用不同的文件来存储数据文件和索引文件,同时表数据都存放在对应的数据库子目录下。

    test.frm 存储表结构 #MySQL8.0 改为了 b.xxx.sdi
    test.MYD 存储数据 (MYData) 
    test.MYI 存储索引 (MYIndex
    
    1
    2
    3

    #MySQL
    上次更新: 2025/02/26, 08:57:57
    Linux下MySQL的安装与使用
    用户与权限管理

    ← Linux下MySQL的安装与使用 用户与权限管理→

    最近更新
    01
    RAIL
    02-26
    02
    IOCTF
    02-25
    03
    DGM
    02-25
    更多文章>
    Theme by Vdoing | Copyright © 2022-2025 Geeks_Z | MIT License
    京公网安备 11010802040735号 | 京ICP备2022029989号-1
    • 跟随系统
    • 浅色模式
    • 深色模式
    • 阅读模式