mysql cluster 查看数据库表名称_MySQL Cluster如何创建磁盘表方法解读

MySQL Cluster采用一系列的Disk Data objects来实现磁盘表;接下来为您详细介绍

一、概念

MySQL Cluster采用一系列的Disk Data objects来实现磁盘表。

Tablespaces:作用是作为其他Disk Data objects的容器。

Undo log files:存储事务进行回滚需要的信息,一个或者多个undo log files组成一个log files group,最后,该log file group关联到一个tablespaces。

Data files:作用是存储表中的数据,data file直接关联到tablespaces。

在每一个数据节点上undo log files和data files都是实际的文件,默认的,存放在ndb_node_id_fs文件夹下,该路径是在MySQL Cluster的config.ini中用DataDir指定的,node_id是data node的node ID。可以用绝对路径或者相对路径指定undo log或者data file的路径。tablespaces和log file group则不是实际的文件。

注意:尽管不是所有的Disk Data Object都作为文件存储,但是他们共享同一的命名空间,这意味着每个Disk Data Object必须唯一命名。

二、创建步骤

MySQL Cluster创建一个磁盘表需要包含以下几步:

2.1、创建一个log file group,将一个或者多个undo log files关联到它上面(undo log file也叫做 undofile)。注意,undo log file只是在创建磁盘表的时候才需要,创建ndb的内存表的时候不需要。

2.2、创建一个tablespaces,关联一个log file group和一个或者多个data files到上面。

2.3、使用该tablespaces创建一个磁盘表存储数据。

下面做一个例子:

2.4、创建log file group:

我们创建一个名为lg_cloudstor的log file group,包含cloudstor_undo_1.log和cloudstor_undo_2.log两个undo log file。初始大小分别为200M和100M(默认的undo log file的初始大小为128M),你还可以指定log file group的重写缓冲大小(默认为8M),这里我们设置为20M。创建log file group的时候必须和一个undo log file一起创建。如下:

CREATE LOGFILE GROUP lg_cloudstor

ADD UNDOFILE 'cloudstor_undo_1.log'

INITIAL_SIZE 200M

UNDO_BUFFER_SIZE 20M

ENGINE NDBCLUSTER;

该语句可能会出错,出现ERROR 1064 (42000)语法错误的信息,原因是字符集的问题,先执行:set character_set_client=latin1; 在执行:

492659e891456a2c23cfe3d062eec45e.png

添加新的undo log file:

ALTER LOGFILE GROUP lg_cloudstor

ADD UNDOFILE 'cloudstor_undo_2.log'

INITIAL_SIZE 100M

ENGINE NDBCLUSTER;

2.5、创建tablespace

下来我们创建一个tablespace,创建tablespace必须指明一个log file group用于存储undo log。还必须指定一个data file,tablespace创建完成后,你可以稍后添加更多的data file到tablespace。下来我们创建一个使用log file group为lg_cloudstor名为 ts_cloudstore的表空间,这个表空间包含cloudstore_data_1.dbf和cloudstore_data_2.dbf两个data file,初始大小为100M(默认为128M),自动扩展为10M。

CREATE TABLESPACE ts_cloudstore

ADD DATAFILE 'cloudstore_data_1.dbf'

USE LOGFILE GROUP lg_cloudstor

INITIAL_SIZE 100M

AUTOEXTEND_SIZE 10M

ENGINE NDBCLUSTER;

添加新的datafile

ALTER TABLESPACE ts_cloudstore

ADD DATAFILE 'cloudstore_data_2.dbf'

INITIAL_SIZE 100M

AUTOEXTEND_SIZE 10M

ENGINE NDBCLUSTER;

下来我们可以看下新建的这些文件在物理磁盘上的数据文件:

0f17977990b81075894ac55d25d54825.png 

2.6、创建磁盘表

下来创建一个将没有索引的列存储在表空间ts_cloudstore的磁盘表。

create table Disktable

(

id int auto_increment primary key,

c1 varchar(50) not null,

c2 varchar(30) default null,

c3 date default null,

index(c1)

)

TABLESPACE ts_cloudstore STORAGE DISK

ENGINE NDBCLUSTER;

这样,列c2,c3的数据将会存储在磁盘上,id和c1的数据仍会存储在内存中,因为只有没有索引的列才能存储在磁盘上。创建完成后,就可以进行正常的数据操作了。

log file group,tablespaces,Disk Data tables需要按照一定的顺序执行,删除这些的时候也是这样,删除规则为:有任何表空间使用log file group时,log file group不能删除;表空间含有任何data files的时候,不能删除表空间;Data files含有任何表残余的时候,不能从表空间删除数据文件。

2.7、删除数据表

drop table Disktable;

4d08209adffc5db6bb937fe8430ef872.png 

2.8、删除数据文件

当没有表在关联到表空间的时候,我们一个一个删除data files。

alter tablespace ts_cloudstore

drop datafile 'cloudstore_data_1.dbf'

engine ndbcluster;

alter tablespace ts_cloudstore

drop datafile 'cloudstore_data_2.dbf'

engine ndbcluster;

cef7e352be793ec3d44d4904dd0669cc.png 

2.9、删除表空间

drop tablespace ts_cloudstore

engine ndbcluster;

2.10、删除日志组

drop logfile group lg_cloudstor

engine ndbcluster;

下来查看物理文件是否已经删除:

b4f44d2d764176b8fb60f714efb79ec3.png 

可以在INFORMATION_SCHEMA数据库中的FILES表中查看磁盘表的信息。

2.11、几点注意的

在磁盘数据表中,TEXT和BLOB列的前256bytes存储在内存中,剩余内容存储在磁盘上;磁盘表中的每一行需要在内存中存储8bytes的数据用于指向磁盘上的数据,使用--initial选项启动集群时,不会删除磁盘上的数据文件,必须手动删除。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/472073.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

(运算符) 运算符

& 运算符既可作为一元运算符也可作为二元运算符。 备注 一元 & 运算符返回操作数的地址(要求 unsafe 上下文)。 为整型和 bool 类型预定义了二进制 & 运算符。 对于整型,& 计算操作数的逻辑按位“与”。 对于 bool 操作数&am…

LeetCode 1903. 字符串中的最大奇数

文章目录1. 题目2. 解题1. 题目 给你一个字符串 num ,表示一个大整数。 请你在字符串 num 的所有 非空子字符串 中找出 值最大的奇数 ,并以字符串形式返回。如果不存在奇数,则返回一个空字符串 “” 。 子字符串 是字符串中的一个连续的字符…

mysql分页插件springboot_SpringBoot--使用Mybatis分页插件

1、导入分页插件包和jpa包org.springframework.bootspring-boot-starter-data-jpacom.github.pagehelperpagehelper-spring-boot-starter1.2.52、增加分页配置# 主键自增回写方法,默认值MYSQL,详细说明请看文档mapper:identity: MYSQL# 设置 insert 和 update 中,是…

LeetCode 1904. 你完成的完整对局数

文章目录1. 题目2. 解题1. 题目 一款新的在线电子游戏在近期发布,在该电子游戏中,以 刻钟 为周期规划若干时长为 15 分钟 的游戏对局。 这意味着,在 HH:00、HH:15、HH:30 和 HH:45 ,将会开始一个新的对局,其中 HH 用一…

LeetCode 1905. 统计子岛屿(BFS)

文章目录1. 题目2. 解题1. 题目 给你两个 m x n 的二进制矩阵 grid1 和 grid2 ,它们只包含 0 (表示水域)和 1 (表示陆地)。 一个 岛屿 是由 四个方向 (水平或者竖直)上相邻的 1 组成的区域。 任…

vue是什么软件_Angular vs React vs Vue:2020年的最佳选择是什么?

在2020年,想象没有HTML,CSS和Javascript的Web开发是不切实际的。 Javascript是Web应用程序前端开发的灵魂。 如果您登陆此页面,那么我认为您在Java语言和Java编程语言的不同框架和库之间感到困惑。企业和软件开发人员最常见的一些查询是&…

LeetCode 1910. 删除一个字符串中所有出现的给定子字符串

文章目录1. 题目2. 解题1. 题目 给你两个字符串 s 和 part ,请你对 s 反复执行以下操作直到 所有 子字符串 part 都被删除: 找到 s 中 最左边 的子字符串 part ,并将它从 s 中删除。 请你返回从 s 中删除所有 part 子字符串以后得到的剩余…

tcp长连接和短连接的区别_TCP --- 连接

一个TCP连接由4个元组组成:2个ip地址和2个端口号tcp三次握手为什么是三次握手解决历史连接问题通过三次握手才能阻止重复历史连接的初始化通过三次握手,才能对通讯双方的初始序号初始化如果只有2次握手,发送方一旦发送创建连接的请求就无法撤…

LeetCode 1911. 最大子序列交替和(动态规划)

文章目录1. 题目2. 解题1. 题目 一个下标从 0 开始的数组的 交替和 定义为 偶数 下标处元素之 和 减去 奇数 下标处元素之 和 。 比方说,数组 [4,2,5,3] 的交替和为 (4 5) - (2 3) 4 。 给你一个数组 nums ,请你返回 nums 中任意子序列的 最大交替和…

LeetCode 1912. 设计电影租借系统(map+set)

文章目录1. 题目2. 解题1. 题目 你有一个电影租借公司和 n 个电影商店。 你想要实现一个电影租借系统,它支持查询、预订和返还电影的操作。 同时系统还能生成一份当前被借出电影的报告。 所有电影用二维整数数组 entries 表示,其中 entries[i] [shopi…

python第一周心得_python第一周心得-Go语言中文社区

Python 简介Python 作为一个近年备受好评的语言,它的一些优点让人无法忽视。Python 是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。它的设计具有很强的可读性,相比其他语言经常使用英文关键字,其他语言的一些标点符号&am…

使用预训练模型进行句对分类(Paddle、PyTorch)

文章目录1. Paddle2. PyTorch3. 提交结果分别使用两种框架,加载预训练模型,对句对进行分类 数据下载:千言数据集:文本相似度 1. Paddle 可以使用 paddlenlp 直接加载预训练模型,比较方便 # %% # 比赛地址 # https…

mysql1033错误存储引擎_MySQL Innodb存储引擎因为缓存配置出现的错误

引用100920 10:50:21 mysqld_safe Starting mysqld daemon with databases from /byread/dataInnoDB: The InnoDB memory heap is disabledInnoDB: Mutexes and rw_locks use GCC atomic builtinsInnoDB: mmap(11010048000 bytes) failed; errno 12InnoDB: Fatal error: cannot…

LeetCode 1913. 两个数对之间的最大乘积差

文章目录1. 题目2. 解题1. 题目 两个数对 (a, b) 和 (c, d) 之间的 乘积差 定义为 (a * b) - (c * d) 。 例如,(5, 6) 和 (2, 7) 之间的乘积差是 (5 * 6) - (2 * 7) 16 。 给你一个整数数组 nums ,选出四个 不同的 下标 w、x、y 和 z ,使数…

PHP和MySQL开发WordPress_wordpress是什么开发的

wordpress是什么开发的?WordPress是一个以PHP和MySQL为平台的自由开源的博客软件和内容管理系统。WordPress具有插件架构和模板系统。截至2018年4月,排名前1000万的网站超过30.6%使用WordPress。WordPress是最受欢迎的网站内容管理系统。WordPress是目前…

LeetCode 1920. 基于排列构建数组

文章目录1. 题目2. 解题1. 题目 给你一个 从 0 开始的排列 nums&#xff08;下标也从 0 开始&#xff09;。 请你构建一个 同样长度 的数组 ans &#xff0c;其中&#xff0c;对于每个 i&#xff08;0 < i < nums.length&#xff09;&#xff0c;都满足 ans[i] nums[nu…

LeetCode 1922. 统计好数字的数目(快速幂)

文章目录1. 题目2. 解题1. 题目 我们称一个数字字符串是 好数字 当它满足&#xff08;下标从 0 开始&#xff09;偶数 下标处的数字为 偶数 且 奇数 下标处的数字为 质数 &#xff08;2&#xff0c;3&#xff0c;5 或 7&#xff09;。 比方说&#xff0c;“2582” 是好数字&a…

LeetCode 1933. 判断字符串是否可分解为值均等的子串

文章目录1. 题目2. 解题1. 题目 一个字符串的所有字符都是一样的&#xff0c;被称作等值字符串。 举例&#xff0c;"1111" 和 "33" 就是等值字符串。 相比之下&#xff0c;"123"就不是等值字符串。 规则&#xff1a;给出一个数字字符串s&…

LeetCode 1921. 消灭怪物的最大数量(排序)

文章目录1. 题目2. 解题1. 题目 你正在玩一款电子游戏&#xff0c;在游戏中你需要保护城市免受怪物侵袭。 给你一个 下标从 0 开始 且长度为 n 的整数数组 dist &#xff0c;其中 dist[i] 是第 i 个怪物与城市的 初始距离&#xff08;单位&#xff1a;米&#xff09;。 怪物以…

软件测试课程学习总结

一、知识结构 介绍&#xff1a; 1.Definition of Software testing: Software testing is any activity aimed at evaluating an attribute or capability of a program or system and determining that it meets its required results Software Testing is an empirical&#…