使用
ndb_desc - cconnection_stringtbl_name- ddb_name[选项] ndb_desc - cconnection_stringindex_name- ddb_name- ttbl_name
可与。一起使用的其他选项ndb_desc将在本节后面列出。
样例输出
MySQL表创建和填充语句:
使用测试;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 (NULL, 'guppy', 35, 2), (NULL, 'tuna', 2500, 150000), (NULL, 'shark', 3000, 110000), (NULL, 'manta ray', 1500, 50000), (NULL, 'grouper', 900, 125000), (NULL, 'puffer', 250, 2500);
输出ndb_desc:
壳>。/ ndb_desc - c localhost鱼- d - p -鱼-测试版本:2片段类型:HashMapPartition K值:6分钟负载因素:78年最大负荷系数:80临时表:没有数量的属性:4号主键:1纳数据长度:337 Max行:0行校验和:1行GCI: 1 SingleUserMode: 0 ForceVarPart: 1 PartitionCount: 2 FragmentCount: 2 PartitionBalance: FOR_RP_BY_LDM ExtraRowGciBits: 0 ExtraRowAuthorBits: 0 TableStatus:检索表选项:HashMap:DEFAULT-HASHMAP-3840-2——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 DYNAMIC length_mm Int NOT NULL AT=FIXED ST=MEMORY DYNAMIC weight_gm Int NOT NULL AT=FIXED ST=MEMORY DYNAMIC——Indexes——PRIMARY KEY(id) - UniqueHashIndex PRIMARY(id) - OrderedIndex uk(name) - OrderedIndex uk$unique(name) - UniqueHashIndex——Per partition info——partition Row count Commit count fragment固定内存分片varsized memory Extent_space Free Extent_space 0 2 2 32768 32768 0 0 1 4 4 32768 32768 0 0 NDBT_ProgramExit: 0 - OK
的一次调用中可以获得关于多个表的信息ndb_desc用他们的名字,用空格隔开。所有的表都必须在同一个数据库中。
方法可以获取有关特定索引的附加信息——表
(简式:- t
)选项,并提供索引的名称作为第一个参数ndb_desc,如下所示:
壳>。/ ndb_desc英国- d - t测试鱼——英国——版本:2基表:鱼数量的属性:1日志:0索引类型:OrderedIndex指数状态:检索——属性——名字Varchar (20; latin1_swedish_ci) NOT NULL = SHORT_VAR圣=记忆——英国IndexTable 10 /版本:2片段类型:FragUndefined K值:6分钟负载因素:78年最大负荷系数:80临时表:是的数量的属性:2的主键数量:1纳数据长度:0马克斯行:0行校验和:1行GCI:1 SingleUserMode: 2 forceevarpart: 0 PartitionCount: 2 FragmentCount: 2 FragmentCountType: ONE_PER_LDM_PER_NODE ExtraRowGciBits: 0 ExtraRowAuthorBits: 0 TableStatus: retriittable options:——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
期权没有效果。
的版本
列包含表的模式对象版本。有关解释此值的信息,请参见NDB架构对象版本.
可以使用设置的表属性中的三个NDB_TABLE
评论嵌入创建表
而且ALTER TABLE
中也可以看到语句ndb_desc输出。表的FRAGMENT_COUNT_TYPE
总是显示在FragmentCountType
列。READ_ONLY
而且FULLY_REPLICATED
,如果设置为1,则显示在表选项
列。您可以在执行以下命令后看到这一点ALTER TABLE
声明mysql客户:
ALTER TABLE fish COMMENT='NDB_TABLE=READ_ONLY=1, fullly_replicated =1';1行集合,1警告(0.00秒)mysql > \ G显示警告 +---------+------+---------------------------------------------------------------------------------------------------------+ | 水平| |消息代码 | +---------+------+---------------------------------------------------------------------------------------------------------+ | 警告| 1296 |错误4503”表属性FRAGMENT_COUNT_TYPE = ONE_PER_LDM_PER_NODE但不是在评论“NDB |+---------+------+---------------------------------------------------------------------------------------------------------+ 1行集(0.00秒)
发出警告是因为READ_ONLY = 1
要求表的片段计数类型为(或设置为)ONE_PER_LDM_PER_NODE_GROUP
;NDB
在这种情况下自动设置。你可以检查一下ALTER TABLE
语句的使用具有预期的效果显示创建表
:
mysql >显示创建表鱼\ G *************************** 1。row *************************** Table: fish Create Table: 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 (' id '), UNIQUE KEY ' uk ' (' name ')) ENGINE=ndbcluster DEFAULT CHARSET=latin1 COMMENT='NDB_TABLE=READ_BACKUP=1,FULLY_REPLICATED=1' 1 row in set(0.01秒)
因为FRAGMENT_COUNT_TYPE
未显式设置,其值未显示在由显示创建表
.ndb_desc,但是,显示此属性的更新值。的表选项
列显示刚刚启用的二进制属性。你可以在输出中看到这一点(强调文字):
shell> ./ndb_desc -c localhost fish -d test -p——fish——版本:4分片类型:HashMapPartition K值:6最小负载系数:78最大负载系数:80临时表:no属性数:4主键数:1 frm data长度:380 Max Rows: 0 Row Checksum: 1 Row GCI: 1 SingleUserMode: 0 forceevarpart: 1 PartitionCount: 1 FragmentCount: 1FragmentCountType: ONE_PER_LDM_PER_NODE_GROUPExtraRowAuthorBits: 0 TableStatus:已检索表选项:readbackup,完全复制HashMap:DEFAULT-HASHMAP-3840-1——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 DYNAMIC length_mm Int NOT NULL AT=FIXED ST=MEMORY DYNAMIC weight_gm Int NOT NULL AT=FIXED ST=MEMORY DYNAMIC——Indexes——PRIMARY KEY(id) - UniqueHashIndex PRIMARY(id) - OrderedIndex uk(name) - OrderedIndex uk$unique(name) - UniqueHashIndex——Per partition info——partition Row count Commit count fragment固定内存片段varsized memory Extent_space空闲Extent_space NDBT_ProgramExit: 0 - OK
有关这些表属性的更多信息,请参见第13.1.18.9节“设置NDB_TABLE选项”.
的Extent_space
而且免费extent_space
列只适用于NDB
磁盘上有列的表;对于内存中只有列的表,这些列总是包含值0
.
为了说明它们的使用,我们修改前面的示例。首先,我们必须创建必要的Disk Data对象,如下所示:
创建LOGFILE组lg_1添加UNDOFILE 'undo_1.log' INITIAL_SIZE 16M UNDO_BUFFER_SIZE 2M ENGINE NDB;修改LOGFILE组lg_1添加UNDOFILE 'undo_2.log' INITIAL_SIZE 12M ENGINE NDB;创建表空间ts_1添加数据文件组lg_1 .dat将表空间ts_1添加为“data_2.dat”的数据文件
(有关刚才显示的语句和由它们创建的对象的更多信息,请参见第21.5.10.1节“NDB集群磁盘数据对象”,以及第13.1.15节," CREATE LOGFILE GROUP Statement ",第13.1.19节“创建表空间语句”)。
现在我们可以创建和填充一个版本的鱼
在磁盘上存储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 (NULL, 'guppy', 35, 2), (NULL, 'tuna', 2500, 150000), (NULL, 'shark', 3000, 110000), (NULL, 'manta ray', 1500, 50000), (NULL, 'grouper', 900, 125000), (NULL, 'puffer', 250, 2500);
当运行这个版本的表时,ndb_desc显示如下信息:
壳>。/ ndb_desc - c localhost鱼- d - p -鱼-测试版本:1片段类型:HashMapPartition K值:6分钟负载因素:78年最大负荷系数:80临时表:没有数量的属性:4号主键:1纳数据长度:346 Max行:0行校验和:1行GCI: 1 SingleUserMode: 0 ForceVarPart: 1 PartitionCount: 2 FragmentCount: 2 FragmentCountType: ONE_PER_LDM_PER_NODE ExtraRowGciBits: 0 ExtraRowAuthorBits: 0 TableStatus:检索表选项:HashMap:DEFAULT-HASHMAP-3840-2——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(name) - OrderedIndex uk$unique(name) - UniqueHashIndex——Per partition info——partition Row count Commit count Frag FIXED MEMORY Frag varsize MEMORY Extent_space Freeextent_space 0 2 2 32768 32768 1048576 1044440 1 44 32768 32768 1048576 1044400 NDBT_ProgramExit: 0 - OK
这意味着在每个分区上为这个表分配了1048576个字节的表空间,其中1044440个字节仍可用于额外的存储。换句话说,当前每个分区使用1048576 - 1044440 = 4136字节来存储来自该表基于磁盘的列的数据。字节数显示为免费extent_space
可用来存储磁盘上列数据鱼
表;因此,在从INFORMATION_SCHEMA。文件
表格
对于完全复制的表,ndb_desc仅显示持有主分区片段副本的节点;具有复制片段副本(仅)的节点将被忽略。从NDB 7.5.4开始,您可以使用mysql的客户,table_distribution_status
,table_fragments
,table_info
,table_replicas
表ndbinfo
数据库。
可用于。的选项ndb_desc如下表所示。其他描述见下表。
表21.29 ndb_desc程序使用的命令行选项
格式 | 描述 | 已添加、已弃用或已移除 |
---|---|---|
如果表中有AUTO_INCREMENT oolumn,则显示下一个值 | 补充:NDB 7.6.14 |
|
在输出中包含BLOB表的分区信息。要求还使用-p选项 | (基于MySQL 5.7的所有NDB版本都支持) |
|
包含字符集的目录 | (基于MySQL 5.7的所有NDB版本都支持) |
|
在放弃连接之前重试的次数 | (基于MySQL 5.7的所有NDB版本都支持) |
|
两次尝试联系管理服务器之间等待的秒数 | (基于MySQL 5.7的所有NDB版本都支持) |
|
——ndb-connectstring一样 | (基于MySQL 5.7的所有NDB版本都支持) |
|
|
显示表的额外信息,如数据库、模式、名称、内部ID | 补充:NDB 7.6.14 |
写入核心文件出错;用于调试 | (基于MySQL 5.7的所有NDB版本都支持) |
|
包含表的数据库名称 | (基于MySQL 5.7的所有NDB版本都支持) |
|
在读取全局文件之后读取给定文件 | (基于MySQL 5.7的所有NDB版本都支持) |
|
只从给定文件读取默认选项 | (基于MySQL 5.7的所有NDB版本都支持) |
|
也可以用concat(group,后缀)读取组 | (基于MySQL 5.7的所有NDB版本都支持) |
|
在输出中包含分区到数据节点的映射。要求还使用-p选项 | (基于MySQL 5.7的所有NDB版本都支持) |
|
显示关于分区的信息 | (基于MySQL 5.7的所有NDB版本都支持) |
|
|
显示帮助文本并退出 | (基于MySQL 5.7的所有NDB版本都支持) |
从登录文件中读取给定路径 | (基于MySQL 5.7的所有NDB版本都支持) |
|
设置连接ndb_mgmd的连接字符串。语法:“[nodeid = id;][主机=]主机名(港口):”。覆盖NDB_CONNECTSTRING和my.cnf中的条目 | (基于MySQL 5.7的所有NDB版本都支持) |
|
——ndb-connectstring一样 | (基于MySQL 5.7的所有NDB版本都支持) |
|
设置此节点的节点ID,覆盖由——db-connectstring设置的任何ID | (基于MySQL 5.7的所有NDB版本都支持) |
|
为事务的节点选择启用优化。默认启用;使用——skip-ndb-optimized-node-selection禁用 | (基于MySQL 5.7的所有NDB版本都支持) |
|
不从除登录文件以外的任何选项文件读取默认选项 | (基于MySQL 5.7的所有NDB版本都支持) |
|
打印程序参数列表并退出 | (基于MySQL 5.7的所有NDB版本都支持) |
|
重试连接的次数(每秒一次) | (基于MySQL 5.7的所有NDB版本都支持) |
|
指定要在其中查找索引的表。当使用这个选项时,-p和-n没有效果,并且被忽略 | (基于MySQL 5.7的所有NDB版本都支持) |
|
使用非限定表名 | (基于MySQL 5.7的所有NDB版本都支持) |
|
|
显示帮助文本并退出;一样,帮助 | (基于MySQL 5.7的所有NDB版本都支持) |
|
显示版本信息并退出 | (基于MySQL 5.7的所有NDB版本都支持) |
显示表的下一个值
AUTO_INCREMENT
列,如果它有列的话。选项的使用还需要使用
——extra-partition-info
(- p
)选项。-
命令行格式 ——character-sets-dir =路径
包含字符集的目录。
-
命令行格式 ——connect-retries = #
类型 整数 默认值 12
最小值 0
最大值 12
在放弃连接之前重试连接的次数。
-
命令行格式 ——connect-retry-delay = #
类型 整数 默认值 5
最小值 0
最大值 5
两次尝试联系管理服务器之间等待的秒数。
-
命令行格式 ——连接字符串=连接字符串
类型 字符串 默认值 (没有)
——ndb-connectstring一样。
显示表的附加上下文信息,如模式、数据库名、表名和表的内部ID。
-
命令行格式 ——核心文件
写入核心文件出错;用于调试。
指定应该在其中找到表的数据库。
-
命令行格式 ——defaults-extra-file =路径
类型 字符串 默认值 (没有)
在读取全局文件之后读取给定文件。
-
命令行格式 ——defaults-file =路径
类型 字符串 默认值 (没有)
只从给定文件读取默认选项。
-
命令行格式 ——defaults-group-suffix =字符串
类型 字符串 默认值 (没有)
也可以用concat(group,后缀)读取组。
包括关于表分区和它们所在的数据节点之间的映射的信息。这些信息对于验证分布感知机制和支持更有效的应用程序访问存储在NDB集群中的数据非常有用。
选项的使用还需要使用
——extra-partition-info
(- p
)选项。打印表分区的附加信息。
-
命令行格式 ——帮助
显示帮助文本并退出。
-
命令行格式 ——登录路径=路径
类型 字符串 默认值 (没有)
从登录文件读取给定路径。
-
命令行格式 ——ndb-connectstring =连接字符串
类型 字符串 默认值 (没有)
设置连接ndb_mgmd的连接字符串。语法:“[nodeid = id;][主机=]主机名(港口):”。覆盖NDB_CONNECTSTRING和my.cnf中的条目。
-
命令行格式 ——ndb-mgmd-host =连接字符串
类型 字符串 默认值 (没有)
——ndb-connectstring一样。
-
命令行格式 ——ndb-nodeid = #
类型 整数 默认值 (没有)
设置此节点的节点ID,覆盖由——db-connectstring设置的任何ID。
——ndb-optimized-node-selection
命令行格式 ——ndb-optimized-node-selection
为事务的节点选择启用优化。默认启用;使用
——skip-ndb-optimized-node-selection
禁用。-
命令行格式 ——已
不要从除登录文件以外的任何选项文件中读取默认选项。
-
命令行格式 ——print-defaults
打印程序参数列表并退出。
在放弃之前试着多联系几次。每秒进行一次连接尝试。
指定要查找索引的表。
使用非限定表名。
-
命令行格式 ——使用
显示帮助文本并退出;——帮助一样。
-
命令行格式 ——版本
显示版本信息并退出。
在NDB 7.5.3及更高版本中,输出中列出的表索引是按ID排序的。以前,这是不确定的,可能会因平台而异。(Bug #81763, Bug #23547742)