MySQL8.0自定义表空间

2023-05-16

文章目录

  • MySQL8.0自定义表空间
    • 语法
      • 创建表空间语法
      • 修改表空间语法
    • 示例
    • 参考文档

MySQL8.0自定义表空间

从MySQL 8.0开始允许用户自定义表空间,不同表的表空间可以设置使用不同磁盘,可以做到冷热数据的分离。

语法

创建表空间语法

CREATE [UNDO] TABLESPACE tablespace_name

  InnoDB and NDB:
    [ADD DATAFILE 'file_name'] -- 定义表空间数据文件的名称。创建NDB表空间时始终需要此选项。
                               -- 一个InnoDB表空间仅支持单个数据文件。
                               -- 如果需要修改undo表空间默认路径,需要修改innodb_undo_directory变量。
                               -- 如果是创建通用表空间且不在默认路径下,需要配置innodb_directories变量
                               -- 不支持循环路径引用,例如'any_directory/../ts1.ibd'
    [AUTOEXTEND_SIZE [=] value] -- 自动扩展大小

  InnoDB only: -- 仅innodb支持
    [FILE_BLOCK_SIZE = value]  -- 定义了表空间数据文件的块大小。值可以以字节或千字节为单位指定。
    [ENCRYPTION [=] {'Y' | 'N'}] 

  NDB only: -- 仅ndb支持
    USE LOGFILE GROUP logfile_group
    [EXTENT_SIZE [=] extent_size]
    [INITIAL_SIZE [=] initial_size]
    [MAX_SIZE [=] max_size]
    [NODEGROUP [=] nodegroup_id]
    [WAIT]
    [COMMENT [=] 'string']

  InnoDB and NDB:
    [ENGINE [=] engine_name]

  Reserved for future use:
    [ENGINE_ATTRIBUTE [=] 'string']

修改表空间语法

ALTER [UNDO] TABLESPACE tablespace_name
  NDB only:
    {ADD | DROP} DATAFILE 'file_name'
    [INITIAL_SIZE [=] size]
    [WAIT]
  InnoDB and NDB:
    [RENAME TO tablespace_name]  -- 重命名undo表空间
  InnoDB only:
    [AUTOEXTEND_SIZE [=] 'value'] -- 调整自动扩展大小
    [SET {ACTIVE | INACTIVE}]  -- 设置是否可用
    [ENCRYPTION [=] {'Y' | 'N'}]
  InnoDB and NDB:
    [ENGINE [=] engine_name]
  Reserved for future use:
    [ENGINE_ATTRIBUTE [=] 'string']

示例

修改innodb_directories变量,语法为:

innodb_directories="directory_path_1;directory_path_2"

改变量为只读变量,需要重启生效,新增/tmp作为存放表空间文件目录

innodb_directories="/tmp"

多个表使用相同表空间

mysql> CREATE DATABASE tbs_test;
mysql> USE tbs_test;
mysql> CREATE TABLESPACE `ts1` ADD DATAFILE 'ts1.ibd' ENGINE=INNODB;
mysql> CREATE TABLE t1 (c1 INT PRIMARY KEY) TABLESPACE ts1 ROW_FORMAT=REDUNDANT;
mysql> CREATE TABLE t2 (c1 INT PRIMARY KEY) TABLESPACE ts1 ROW_FORMAT=COMPACT;
mysql> CREATE TABLE t3 (c1 INT PRIMARY KEY) TABLESPACE ts1 ROW_FORMAT=DYNAMIC;
-- 以上的ROW_FORMAT非必要,这里只是为了演示同一个表空间可以提供多个表使用不同的row_format参数

多个表使用不同表空间

mysql> CREATE TABLESPACE `ts2` ADD DATAFILE 'ts2.ibd' ENGINE=INNODB;
mysql> CREATE TABLESPACE `ts3` ADD DATAFILE '/tmp/ts3.ibd' ENGINE=INNODB;
mysql> CREATE TABLE t4 (c1 INT PRIMARY KEY) TABLESPACE ts2 ;
mysql> CREATE TABLE t5 (c1 INT PRIMARY KEY) TABLESPACE ts3 ;

表空间文件目录必须是已知

创建undo表空间

mysql> CREATE UNDO TABLESPACE undo_003 ADD DATAFILE 'undo_003.ibu';

查看表空间文件信息

mysql> SELECT FILE_NAME, FILE_TYPE, LOGFILE_GROUP_NAME, STATUS, EXTRA
    FROM INFORMATION_SCHEMA.FILES
    WHERE TABLESPACE_NAME like 'ts%';
+--------------+------------+--------------------+--------+-------+
| FILE_NAME    | FILE_TYPE  | LOGFILE_GROUP_NAME | STATUS | EXTRA |
+--------------+------------+--------------------+--------+-------+
| ./ts1.ibd    | TABLESPACE | NULL               | NORMAL | NULL  |
| ./ts2.ibd    | TABLESPACE | NULL               | NORMAL | NULL  |
| /tmp/ts3.ibd | TABLESPACE | NULL               | NORMAL | NULL  |
+--------------+------------+--------------------+--------+-------+

查看innodb表空间信息

mysql> select * from INNODB_TABLESPACES;


mysql> select * from INNODB_TABLESPACES_BRIEF;
+------------+-----------------+----------------------+-------+------------+
| SPACE      | NAME            | PATH                 | FLAG  | SPACE_TYPE |
+------------+-----------------+----------------------+-------+------------+
| 0          | innodb_system   | ibdata1              | 18432 | System     |
| 4294967279 | innodb_undo_001 | ./undo_001           | 0     | Single     |
| 4294967278 | innodb_undo_002 | ./undo_002           | 0     | Single     |
| 1          | sys/sys_config  | ./sys/sys_config.ibd | 16417 | Single     |
| 2          | ts1             | ts1.ibd              | 18432 | General    |
| 3          | ts2             | ts2.ibd              | 18432 | General    |
| 4          | ts3             | /tmp/ts3.ibd         | 18432 | General    |
| 4294967150 | undo_003        | undo_003.ibu         | 0     | Single     |
+------------+-----------------+----------------------+-------+------------+

停用UNDO表空间

ALTER UNDO TABLESPACE undo_003 SET INACTIVE;

启用UNDO表空间

ALTER UNDO TABLESPACE undo_003 SET ACTIVE;

参考文档

  • https://dev.mysql.com/doc/refman/8.0/en/create-tablespace.html
  • https://dev.mysql.com/doc/refman/8.0/en/alter-tablespace.html
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

MySQL8.0自定义表空间 的相关文章

随机推荐

  • Keil报错:Undefined symbol GPIO_Init

    原因是所需要的C文件没有在工程里面 即使在stm32f10x conf h中开启了包含相关头文件 仍然会出现这样的错误
  • KEIL中SW Device没有识别芯片,jlink下载不进去的问题

    参考了以下链接之后 xff0c 未解决 避坑指南 GD32 KEIL中SW Device没有识别芯片 xff0c jlink下载不进去的问题 无风灬幡动的博客 CSDN博客 jlink识别不到芯片 https blog csdn net q
  • CAS单点登录(二)——搭建基础服务

    前一篇文章中 xff0c 我们对CAS及SSO xff08 单点登录 xff09 有了大致的了解 xff0c 今天我们开始讲解如何搭建一个简单的CAS服务认证中心 xff0c 如果你对CAS中单点登录的概念忘记了 xff0c 可以先去复习一
  • 【20220810】STM32控制各类外设芯片的过程就是配置、读、写该外设寄存器的过程

    STM32等 MCU控制各类外设芯片的过程 xff1a 就是配置 读 写该外设寄存器的过程 因此MCU开发最主要关注的是 xff1a 1 外设芯片的各个功能寄存器的用途 2 寄存器数据的逻辑含义 3 MCU与该外设芯片的通信引脚
  • 【20220816】接触新的通讯协议编程时,只需关注通讯协议初始化和数据接收缓存和发送缓存

    接触新的通讯协议编程时 xff0c 只需关注通讯协议初始化和数据接收缓存和发送缓存 因为通讯协议的实现通常是由硬件或软件实现 xff0c 比如以太网的PHY层芯片 43 MCU的ETH接口 xff0c PHY层芯片 43 MCU的ETH内部
  • Keil5修改与“选中文本“相同变量的背景色

  • C语言的运算符优先级表格

    C语言的运算符包括单目运算符 双目运算符 三目运算符 xff0c 优先级如下 xff1a 第1优先级 xff1a 各种括号 xff0c 如 等 成员运算符 xff1b 第2优先级 xff1a 所有单目运算符 xff0c 如 43 43 等
  • 关于单片机运行时程序卡在B.处的解决方法

    程序运行时 xff0c 程序跳转到startup n32g45x s文件中的B 处卡死 解决方法 xff1a 程序卡死在B 处说明有中断没有处理 xff0c 导致程序进入中断后无法跳出
  • node执行npm -install -g npm版本提示升级成功但执行npm -v还是原来的版本解决方法

    C Users 用户名 AppData Roaming npm node modules npm 的npm复制到node js安装目录下的node modules npm给替换掉 前提是执行npm install g npm成功 执行成功会
  • JAVA工具篇--3 maven项目转gradle项目

    前言 xff1a 将已有的Maven 项目转换为Gradle 项目 xff1b 1 项目转换 xff1a 1 1 win 43 r 打开cmd命令窗口 然后进入到maven项目根目录后 xff0c 输入命令 gradle init span
  • 解决高度塌陷的几种方法

    引入 进行页面布局时 xff0c 为了能够达到自适应 xff0c 通常高度是不会进行固定设置的 xff0c 而使用float进行元素的浮动后 xff0c 由于没有内容的高度 xff0c 所以会发生父元素的高度塌陷问题 xff0c 为了解决此
  • Docker镜像、容器操作

    文章目录 一 Docker镜像操作1 搜索镜像2 获取镜像3 查看镜像查看下载到本地的所有镜像查看下载的镜像文件信息查看镜像详细信息 4 为本地的镜像添加新的标签5 镜像导出导入到本地导出镜像 xff0c 将镜像保存为本地文件导入镜像 xf
  • Python 爬虫库以及库函数总结&&踩坑

    1 Re库的基本使用 Re库介绍 xff1a Re库是Python的标准库 xff0c 主要用于字符串匹配 调用方式 xff1a import re 正则表达式的表示类型 xff1a raw string类型 xff08 原生字符串类型 x
  • mysql创建超级用户

    在安装MySql后只有一个超级管理权限的用户ROOT xff0c 而且ROOT限制只能在数据库本机上使用 xff0c 如果我们要远程管理MySql咋办呢 xff1f 那么事实上我们需要添加一个具有超级管理权限并且可能远程访问的超级用户 xf
  • 论文笔记:Diffusion-Convolutional Neural Networks (传播-卷积神经网络)

    Diffusion Convolutional Neural Networks xff08 传播 卷积神经网络 xff09 2018 04 09 21 59 02 1 Abstract 我们提出传播 卷积神经网络 xff08 DCNNs x
  • JavaEE——CSS3选择器

    声明 xff1a 本栏目所使用的素材都是凯哥学堂VIP学员所写 xff0c 学员有权匿名 xff0c 对文章有最终解释权 xff1b 凯哥学堂旨在促进VIP学员互相学习的基础上公开笔记 CSS3选择器 选择器中的属性 xff1a 之前介绍过
  • vscode 调试 webpack

    在vscode生成的launch json配置文件 span class token punctuation span span class token string 34 version 34 span span class token
  • CentOS8安装

    文章目录 下载镜像安装CentOS8总结参考文档 下载镜像 国内有很多镜像站都可以下载到阿里镜像站或者网易镜像站等 这里使用的是网易镜像站链接 xff1a http mirrors 163 com centos 安装CentOS8 注意 x
  • prometheus基于文件的服务发现

    prometheus基于文件的服务发现 prometheus配置文件如下 xff1a span class token key atrule global span span class token punctuation span spa
  • MySQL8.0自定义表空间

    文章目录 MySQL8 0自定义表空间语法创建表空间语法修改表空间语法 示例参考文档 MySQL8 0自定义表空间 从MySQL 8 0开始允许用户自定义表空间 xff0c 不同表的表空间可以设置使用不同磁盘 xff0c 可以做到冷热数据的