用法
ndb_desc -c connection_string tbl_name -d db_name [options]
ndb_desc -c connection_string index_name -d db_name -t tbl_name
本节后面列出 了可以与 ndb_desc一起使用的其他选项。
示例输出
MySQL建表和填充语句:
USE test;
CREATE TABLE fish (
id INT(11) NOT NULL AUTO_INCREMENT,
name VARCHAR(20) NOT NULL,
length_mm INT(11) NOT NULL,
weight_gm INT(11) NOT NULL,
PRIMARY KEY pk (id),
UNIQUE KEY uk (name)
) ENGINE=NDB;
INSERT INTO fish VALUES
('','guppy', 35, 2), ('','tuna', 2500, 150000),
('','shark', 3000, 110000), ('','manta ray', 1500, 50000),
('','grouper', 900, 125000), ('','puffer', 250, 2500);
来自ndb_desc的输出:
$> ./ndb_desc -c localhost fish -d test -p
-- fish --
Version: 2
Fragment type: 9
K Value: 6
Min load factor: 78
Max load factor: 80
Temporary table: no
Number of attributes: 4
Number of primary keys: 1
Length of frm data: 311
Row Checksum: 1
Row GCI: 1
SingleUserMode: 0
ForceVarPart: 1
FragmentCount: 2
TableStatus: Retrieved
-- Attributes --
id Int PRIMARY KEY DISTRIBUTION KEY AT=FIXED ST=MEMORY AUTO_INCR
name Varchar(20;latin1_swedish_ci) NOT NULL AT=SHORT_VAR ST=MEMORY
length_mm Int NOT NULL AT=FIXED ST=MEMORY
weight_gm Int NOT NULL AT=FIXED ST=MEMORY
-- Indexes --
PRIMARY KEY(id) - UniqueHashIndex
PRIMARY(id) - OrderedIndex
uk$unique(name) - UniqueHashIndex
uk(name) - OrderedIndex
-- Per partition info --
Partition Row count Commit count Frag fixed memory ...
0 2 2 32768 ...
1 4 4 32768 ...
... Frag varsized memory Extent_space Free extent_space
... 32768 0 0
... 32768 0 0
NDBT_ProgramExit: 0 - OK
关于多个表的信息可以通过使用它们的名称在一次ndb_desc调用中获得,以空格分隔。所有表必须在同一个数据库中。
--table
您可以使用(short form:
-t
) 选项并提供索引名称作为ndb_desc的第一个参数来
获取有关特定索引的其他信息,如下所示:
$> ./ndb_desc uk -d test -t fish
-- uk --
Version: 3
Base table: fish
Number of attributes: 1
Logging: 0
Index type: OrderedIndex
Index status: Retrieved
-- Attributes --
name Varchar(20;latin1_swedish_ci) NOT NULL AT=SHORT_VAR ST=MEMORY
-- IndexTable 10/uk --
Version: 3
Fragment type: FragUndefined
K Value: 6
Min load factor: 78
Max load factor: 80
Temporary table: yes
Number of attributes: 2
Number of primary keys: 1
Length of frm data: 0
Row Checksum: 1
Row GCI: 1
SingleUserMode: 2
ForceVarPart: 0
FragmentCount: 4
ExtraRowGciBits: 0
ExtraRowAuthorBits: 0
TableStatus: Retrieved
-- Attributes --
name Varchar(20;latin1_swedish_ci) NOT NULL AT=SHORT_VAR ST=MEMORY
NDB$TNODE Unsigned [64] PRIMARY KEY DISTRIBUTION KEY AT=FIXED ST=MEMORY
-- Indexes --
PRIMARY KEY(NDB$TNODE) - UniqueHashIndex
NDBT_ProgramExit: 0 - OK
当以这种方式指定索引时,
--extra-partition-info
和
--extra-node-info
选项无效。
输出中的Version
列包含表的架构对象版本。有关解释此值的信息,请参阅
导航台模式对象版本。
Extent_space
和Free
extent_space
列仅适用
NDB
于磁盘上有列的表
;对于只有内存中列的表,这些列总是包含值0
。
为了说明它们的使用,我们修改了前面的例子。首先,我们必须创建必要的磁盘数据对象,如下所示:
CREATE LOGFILE GROUP lg_1
ADD UNDOFILE 'undo_1.log'
INITIAL_SIZE 16M
UNDO_BUFFER_SIZE 2M
ENGINE NDB;
ALTER LOGFILE GROUP lg_1
ADD UNDOFILE 'undo_2.log'
INITIAL_SIZE 12M
ENGINE NDB;
CREATE TABLESPACE ts_1
ADD DATAFILE 'data_1.dat'
USE LOGFILE GROUP lg_1
INITIAL_SIZE 32M
ENGINE NDB;
ALTER TABLESPACE ts_1
ADD DATAFILE 'data_2.dat'
INITIAL_SIZE 48M
ENGINE NDB;
(有关刚刚显示的语句及其创建的对象的更多信息,请参阅 第 18.6.11.1 节,“NDB Cluster Disk Data Objects”,以及 第 13.1.14 节,“CREATE LOGFILE GROUP 语句”和 第 13.1.18 节, “CREATE TABLESPACE 语句”。)
现在我们可以创建并填充一个版本的
fish
表,该版本在磁盘上存储其 2 个列(如果表的先前版本已经存在,请先删除该版本):
CREATE TABLE fish (
id INT(11) NOT NULL AUTO_INCREMENT,
name VARCHAR(20) NOT NULL,
length_mm INT(11) NOT NULL,
weight_gm INT(11) NOT NULL,
PRIMARY KEY pk (id),
UNIQUE KEY uk (name)
) TABLESPACE ts_1 STORAGE DISK
ENGINE=NDB;
INSERT INTO fish VALUES
('','guppy', 35, 2), ('','tuna', 2500, 150000),
('','shark', 3000, 110000), ('','manta ray', 1500, 50000),
('','grouper', 900, 125000), ('','puffer', 250, 2500);
针对此版本的表运行时, ndb_desc显示以下输出:
$> ./ndb_desc -c localhost fish -d test -p
-- fish --
Version: 3
Fragment type: 9
K Value: 6
Min load factor: 78
Max load factor: 80
Temporary table: no
Number of attributes: 4
Number of primary keys: 1
Length of frm data: 321
Row Checksum: 1
Row GCI: 1
SingleUserMode: 0
ForceVarPart: 1
FragmentCount: 2
TableStatus: Retrieved
-- Attributes --
id Int PRIMARY KEY DISTRIBUTION KEY AT=FIXED ST=MEMORY AUTO_INCR
name Varchar(20;latin1_swedish_ci) NOT NULL AT=SHORT_VAR ST=MEMORY
length_mm Int NOT NULL AT=FIXED ST=DISK
weight_gm Int NOT NULL AT=FIXED ST=DISK
-- Indexes --
PRIMARY KEY(id) - UniqueHashIndex
PRIMARY(id) - OrderedIndex
uk$unique(name) - UniqueHashIndex
uk(name) - OrderedIndex
-- Per partition info --
Partition Row count Commit count Frag fixed memory ...
0 2 2 32768 ...
1 4 4 32768 ...
... Frag varsized memory Extent_space Free extent_space
... 32768 0 0
... 32768 0 0
NDBT_ProgramExit: 0 - OK
这意味着在每个分区上从该表的表空间中分配了 1048576 字节,其中 1044440 字节可用于额外存储。换句话说,每个分区 1048576 - 1044440 = 4136 字节当前用于存储来自该表的基于磁盘的列的数据。显示为的字节数Free extent_space
仅可用于存储表中的磁盘列数据fish
;因此,从INFORMATION_SCHEMA.FILES
表中选择时它是不可见的。
下表显示了 可以与ndb_desc一起使用的选项。表后有其他说明。
表 18.24 与程序 ndb_desc 一起使用的命令行选项
格式 | 描述 | 添加、弃用或删除 |
---|---|---|
在输出中包含 BLOB 表的分区信息。要求同时使用 -p 选项 | (支持所有基于 MySQL 5.6 的 NDB 版本) |
|
包含字符集的目录 | (支持所有基于 MySQL 5.6 的 NDB 版本) |
|
放弃前重试连接的次数 | 添加:NDB 7.4.9 |
|
尝试联系管理服务器之间等待的秒数 | 添加:NDB 7.4.9 |
|
与 --ndb-connectstring 相同 | (支持所有基于 MySQL 5.6 的 NDB 版本) |
|
写入核心文件出错;用于调试 | (支持所有基于 MySQL 5.6 的 NDB 版本) |
|
包含表的数据库名称 | (支持所有基于 MySQL 5.6 的 NDB 版本) |
|
读取全局文件后读取给定文件 | (支持所有基于 MySQL 5.6 的 NDB 版本) |
|
仅从给定文件中读取默认选项 | (支持所有基于 MySQL 5.6 的 NDB 版本) |
|
还阅读带有 concat(group, suffix) 的组 | (支持所有基于 MySQL 5.6 的 NDB 版本) |
|
在输出中包含分区到数据节点的映射;需要 --extra-partition-info | (支持所有基于 MySQL 5.6 的 NDB 版本) |
|
显示有关分区的信息 | (支持所有基于 MySQL 5.6 的 NDB 版本) |
|
显示帮助文本并退出 | (支持所有基于 MySQL 5.6 的 NDB 版本) |
|
从登录文件中读取给定路径 | (支持所有基于 MySQL 5.6 的 NDB 版本) |
|
设置用于连接到 ndb_mgmd 的连接字符串。语法:“[nodeid=id;][host=]hostname[:port]”。覆盖 NDB_CONNECTSTRING 和 my.cnf 中的条目 | (支持所有基于 MySQL 5.6 的 NDB 版本) |
|
与 --ndb-connectstring 相同 | (支持所有基于 MySQL 5.6 的 NDB 版本) |
|
为此节点设置节点 ID,覆盖 --ndb-connectstring 设置的任何 ID | (支持所有基于 MySQL 5.6 的 NDB 版本) |
|
为交易节点的选择启用优化。默认启用;使用 --skip-ndb-optimized-node-selection 禁用 | (支持所有基于 MySQL 5.6 的 NDB 版本) |
|
不要从登录文件以外的任何选项文件中读取默认选项 | (支持所有基于 MySQL 5.6 的 NDB 版本) |
|
打印程序参数列表并退出 | (支持所有基于 MySQL 5.6 的 NDB 版本) |
|
重试连接的次数(每秒一次) | (支持所有基于 MySQL 5.6 的 NDB 版本) |
|
指定要在其中查找索引的表。使用此选项时,-p 和 -n 无效并被忽略 | (支持所有基于 MySQL 5.6 的 NDB 版本) |
|
使用不合格的表名 | (支持所有基于 MySQL 5.6 的 NDB 版本) |
|
显示帮助文本并退出;与 --help 相同 | (支持所有基于 MySQL 5.6 的 NDB 版本) |
|
显示版本信息并退出 | (支持所有基于 MySQL 5.6 的 NDB 版本) |
显示表列的下一个值
AUTO_INCREMENT
(如果有)。使用此选项还需要使用
--extra-partition-info
(-p
) 选项。-
命令行格式 --character-sets-dir=path
包含字符集的目录。
-
命令行格式 --connect-retries=#
介绍 5.6.28-ndb-7.4.9 类型 整数 默认值 12
最小值 0
最大值 12
放弃前重试连接的次数。
-
命令行格式 --connect-retry-delay=#
介绍 5.6.28-ndb-7.4.9 类型 整数 默认值 5
最小值 0
最大值 5
尝试联系管理服务器之间等待的秒数。
-
命令行格式 --connect-string=connection_string
类型 细绳 默认值 [none]
与 --ndb-connectstring 相同。
显示表的其他上下文信息,例如架构、数据库名称、表名称和表的内部 ID。
-
命令行格式 --core-file
写入核心文件出错;在调试中使用。
指定应在其中找到表的数据库。
-
命令行格式 --defaults-extra-file=path
类型 细绳 默认值 [none]
读取全局文件后读取给定文件。
-
命令行格式 --defaults-file=path
类型 细绳 默认值 [none]
仅从给定文件中读取默认选项。
-
命令行格式 --defaults-group-suffix=string
类型 细绳 默认值 [none]
还可以阅读带有 concat(group, suffix) 的组。
包括有关表分区和它们所在的数据节点之间的映射的信息。此信息可用于验证分布感知机制并支持更有效的应用程序访问存储在 NDB Cluster 中的数据。
使用此选项还需要使用
--extra-partition-info
(-p
) 选项。打印有关表分区的附加信息。
-
命令行格式 --help
显示帮助文本并退出。
-
命令行格式 --login-path=path
类型 细绳 默认值 [none]
从登录文件中读取给定路径。
-
命令行格式 --ndb-connectstring=connection_string
类型 细绳 默认值 [none]
设置用于连接到 ndb_mgmd 的连接字符串。语法:“[nodeid=id;][host=]hostname[:port]”。覆盖 NDB_CONNECTSTRING 和 my.cnf 中的条目。
-
命令行格式 --ndb-mgmd-host=connection_string
类型 细绳 默认值 [none]
与 --ndb-connectstring 相同。
-
命令行格式 --ndb-nodeid=#
类型 整数 默认值 [none]
为此节点设置节点 ID,覆盖 --ndb-connectstring 设置的任何 ID。
--ndb-optimized-node-selection
命令行格式 --ndb-optimized-node-selection
为交易节点的选择启用优化。默认启用;使用 --skip-ndb-optimized-node-selection 禁用。
-
命令行格式 --no-defaults
不要从登录文件以外的任何选项文件中读取默认选项。
-
命令行格式 --print-defaults
打印程序参数列表并退出。
在放弃之前尝试多次连接。每秒进行一次连接尝试。
指定要在其中查找索引的表。
使用不合格的表名。
-
命令行格式 --usage
显示帮助文本并退出;与 --help 相同。
-
命令行格式 --version
显示版本信息并退出。
在 NDB 7.3 和 NDB 7.4 中,输出中列出的表索引的顺序是不确定的,并且可能因平台而异。NDB 7.5 中解决了此问题。(漏洞 #81763,漏洞 #23547742)