美文网首页
InnoDB 表空间(一)

InnoDB 表空间(一)

作者: wayyyy | 来源:发表于2021-08-19 00:25 被阅读0次
MySQL 数据目录

确定 MySQL 数据目录:

> SHOW VARIABLES LIKE 'datadir';
  +---------------+-----------------+
  | Variable_name | Value           |
  +---------------+-----------------+
  | datadir       | /var/lib/mysql/ |
  +---------------+-----------------+
  1 row in set (0.00 sec)

MySQL 系统数据库

MySQL 还有几个系统数据库:

  • mysql
    存储了MySQL 的用户账户和权限信息,一些存储过程和事件的定义信息,一些运行过程中产生的日志信息,一些帮助信息和时区信息。
  • information_schema
    保存MySQL服务器维护的所有其他数据库的元信息,比如哪些表,哪些视图,哪些触发器,哪些列和索引。
  • performance_schema
    主要保存MySQL服务器运行过程中的一些状态信息,主要作用用于对MySQL的性能监控。
  • sys
    差不多同上。

表空间

InnoDB 是使用页为基本单位来管理存储空间的。为了更好的管理这些页面,InnoDB 提出了 表空间 的概念。
这个表空间是一个抽象的概念,它可以对应文件系统上一个或多个真实文件,每一个表空间可以被划分为很多个页,表数据就存放在某个表空间下的某些页中。主要有以下类型:

  • 系统表空间
    在默认情况下,InnoDB 会在数据目录下创建一个名为 ibdata1文件,这个文件就是对应的系统表空间在文件系统上的展示,它是自动扩展的。在 MySQL 5.5.7 ~ MySQL 5.6.5 之间的各个版本,表中的数据都会被默认存储到这个系统表空间中。
    系统表空间也支持我们自定义配置:

    [server]
    innodb_data_file_path=data1:512M;data2:512M:autoextend  # 表示创建data1 和 data2 各自512MB大小作为系统表空间,data2 支持自动扩展大小。
    
  • 独立表空间
    在 MySQL 5.6.6 之后,InnoDB 不再默认把各个表的数据存储到系统表空间中,而是为每一个表建立一个独立的表空间。InnoDB 会在对应的数据库子目录中创建一个表名.frm的文件存储表结构, 在对应的数据库子目录中创建一个表名.ibd的文件存储数据。

    我们也可以自己决定使用系统表还是独立表空间,在配置文件中加入:

    [server]
    innodb_file_per_table=0  # 0 表示使用系统表空间,1表示使用独立表空间。
    

    该配置只针对新建的表,如果需要已经分配了的表可以使用命令迁移:

    ALTER TABLE 表名 TABLESPACE innodb_system  # 转移到系统表空间
    ALTER TABLE 表名 TABLESPACE innodb_file_per_table  # 转移到独立表空间
    
  • 其他类型表空间
    通用表空间,undo 表空间,临时表空间。


相关文章

  • Mysql之InnoDB存储结构

    InnoDB存储结构 Innodb逻辑存储单元为为表空间,段,区,页 InnoDB表空间 InnoDB存储引擎表中...

  • InnoDB 表空间(一)

    MySQL 数据目录 如何确定 MySQL 数据目录> SHOW VARIABLES LIKE 'datadir'...

  • innodb文件结构解析

    innodb 物理文件解析 1 综述 innodb的物理文件包括系统表空间文件ibdata,用户表空间文件ibd,...

  • 浅谈MySQL中的ibdata1

    前言:InnoDB中有共享表空间和独立表空间的概念。共享表空间就是ibdata1,独立表空间放在每个表的.ibd(...

  • InnoDB-B+树索引[一]

    InnoDB知识点梳理 InnoDB逻辑存储结构 表空间:数据都存放在表空间之下 段:数据段,索引段,回滚段 区:...

  • mysql数据物理结构

    表空间:ibdata公用表空间文件,也可以通过配置innodb_file_per_table设置独立表空间文件 i...

  • InnoDB 共享表空间 & 独立表空间

    默认,所有innodb的table和indexcu存储在system tablespace(共享表空间)。也可以把...

  • InnoDB 表空间(二)

    页面类型 InnoDB 是以页为单位来管理存储空间的,针对不同的使用场景设计了不同类型的页面。 类型名称十六进制描...

  • MySQL常用存储引擎之Innodb

    MySQL默认引擎Innodb Innodb使用表空间进行数据存储 控制参数:innidb_file_per_ta...

  • 共享空间表和独立空间表

    对于innodb的数据结构,首先要解决两个概念性的问题: 共享表空间以及独占表空间。 什么是共享表空间和独占表空间...

网友评论

      本文标题:InnoDB 表空间(一)

      本文链接:https://www.haomeiwen.com/subject/rzgubltx.html