ndb_desc provides a detailed description of
        one or more NDB tables.
Usage
ndb_desc -c connection_string tbl_name -d db_name [options]
ndb_desc -c connection_string index_name -d db_name -t tbl_nameAdditional options that can be used with ndb_desc are listed later in this section.
Sample Output
MySQL table creation and population statements:
USE test;
CREATE TABLE fish (
    id INT NOT NULL AUTO_INCREMENT,
    name VARCHAR(20) NOT NULL,
    length_mm INT NOT NULL,
    weight_gm INT 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);Output from ndb_desc:
$> ./ndb_desc -c localhost fish -d test -p
-- fish --
Version: 2
Fragment type: HashMapPartition
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: 337
Max Rows: 0
Row Checksum: 1
Row GCI: 1
SingleUserMode: 0
ForceVarPart: 1
PartitionCount: 2
FragmentCount: 2
PartitionBalance: FOR_RP_BY_LDM
ExtraRowGciBits: 0
ExtraRowAuthorBits: 0
TableStatus: Retrieved
Table options:
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    Frag fixed memory       Frag varsized memory    Extent_space    Free extent_space
0               2               2               32768                   32768                   0               0
1               4               4               32768                   32768                   0               0Information about multiple tables can be obtained in a single invocation of ndb_desc by using their names, separated by spaces. All of the tables must be in the same database.
        You can obtain additional information about a specific index
        using the --table (short form:
        -t) option and supplying the name of the index
        as the first argument to ndb_desc, as shown
        here:
      
$> ./ndb_desc uk -d test -t fish
-- uk --
Version: 2
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: 2
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
Max Rows: 0
Row Checksum: 1
Row GCI: 1
SingleUserMode: 2
ForceVarPart: 0
PartitionCount: 2
FragmentCount: 2
FragmentCountType: ONE_PER_LDM_PER_NODE
ExtraRowGciBits: 0
ExtraRowAuthorBits: 0
TableStatus: Retrieved
Table 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
        When an index is specified in this way, the
        --extra-partition-info and
        --extra-node-info options have
        no effect.
      
        The Version column in the output contains the
        table's schema object version. For information about
        interpreting this value, see
        NDB Schema Object Versions.
      
        Three of the table properties that can be set using
        NDB_TABLE comments embedded in
        CREATE TABLE and
        ALTER TABLE statements are also
        visible in ndb_desc output. The table's
        FRAGMENT_COUNT_TYPE is always shown in the
        FragmentCountType column.
        READ_ONLY and
        FULLY_REPLICATED, if set to 1, are shown in
        the Table options column. You can see this
        after executing the following ALTER
        TABLE statement in the mysql
        client:
      
mysql> ALTER TABLE fish COMMENT='NDB_TABLE=READ_ONLY=1,FULLY_REPLICATED=1';
1 row in set, 1 warning (0.00 sec)
mysql> SHOW WARNINGS\G
+---------+------+---------------------------------------------------------------------------------------------------------+
| Level   | Code | Message                                                                                                 |
+---------+------+---------------------------------------------------------------------------------------------------------+
| Warning | 1296 | Got error 4503 'Table property is FRAGMENT_COUNT_TYPE=ONE_PER_LDM_PER_NODE but not in comment' from NDB |
+---------+------+---------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)
        The warning is issued because READ_ONLY=1
        requires that the table's fragment count type is (or be set
        to) ONE_PER_LDM_PER_NODE_GROUP;
        NDB sets this automatically in such cases.
        You can check that the ALTER TABLE statement
        has the desired effect using SHOW CREATE
        TABLE:
      
mysql> SHOW CREATE TABLE fish\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=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
COMMENT='NDB_TABLE=READ_BACKUP=1,FULLY_REPLICATED=1'
1 row in set (0.01 sec)
        Because FRAGMENT_COUNT_TYPE was not set
        explicitly, its value is not shown in the comment text printed
        by SHOW CREATE TABLE.
        ndb_desc, however, displays the updated value
        for this attribute. The Table options column
        shows the binary properties just enabled. You can see this in
        the output shown here (emphasized text):
      
$> ./ndb_desc -c localhost fish -d test -p
-- fish --
Version: 4
Fragment type: HashMapPartition
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: 380
Max Rows: 0
Row Checksum: 1
Row GCI: 1
SingleUserMode: 0
ForceVarPart: 1
PartitionCount: 1
FragmentCount: 1
FragmentCountType: ONE_PER_LDM_PER_NODE_GROUP
ExtraRowGciBits: 0
ExtraRowAuthorBits: 0
TableStatus: Retrieved
Table options: readbackup, fullyreplicated
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    Frag fixed memory       Frag varsized memory    Extent_space    Free extent_spaceFor more information about these table properties, see Section 15.1.21.12, “Setting NDB Comment Options”.
        The Extent_space and Free
        extent_space columns are applicable only to
        NDB tables having columns on disk; for tables
        having only in-memory columns, these columns always contain the
        value 0.
      
To illustrate their use, we modify the previous example. First, we must create the necessary Disk Data objects, as shown here:
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;(For more information on the statements just shown and the objects created by them, see Section 25.6.11.1, “NDB Cluster Disk Data Objects”, as well as Section 15.1.17, “CREATE LOGFILE GROUP Statement”, and Section 15.1.22, “CREATE TABLESPACE Statement”.)
        Now we can create and populate a version of the
        fish table that stores 2 of its columns on
        disk (deleting the previous version of the table first, if it
        already exists):
      
DROP TABLE IF EXISTS fish;
CREATE TABLE fish (
    id INT NOT NULL AUTO_INCREMENT,
    name VARCHAR(20) NOT NULL,
    length_mm INT NOT NULL,
    weight_gm INT 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);When run against this version of the table, ndb_desc displays the following output:
$> ./ndb_desc -c localhost fish -d test -p
-- fish --
Version: 1
Fragment type: HashMapPartition
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: 1001
Max Rows: 0
Row Checksum: 1
Row GCI: 1
SingleUserMode: 0
ForceVarPart: 1
PartitionCount: 2
FragmentCount: 2
PartitionBalance: FOR_RP_BY_LDM
ExtraRowGciBits: 0
ExtraRowAuthorBits: 0
TableStatus: Retrieved
Table options: readbackup
HashMap: DEFAULT-HASHMAP-3840-2
Tablespace id: 16
Tablespace: ts_1
-- Attributes --
id Int PRIMARY KEY DISTRIBUTION KEY AT=FIXED ST=MEMORY AUTO_INCR
name Varchar(80;utf8mb4_0900_ai_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 varsized memory    Extent_space    Free extent_space
0               2               2               32768                   32768                   1048576         1044440
1               4               4               32768                   32768                   1048576         1044400
        This means that 1048576 bytes are allocated from the tablespace
        for this table on each partition, of which 1044440 bytes remain
        free for additional storage. In other words, 1048576 - 1044440 =
        4136 bytes per partition is currently being used to store the
        data from this table's disk-based columns. The number of
        bytes shown as Free extent_space is available
        for storing on-disk column data from the fish
        table only; for this reason, it is not visible when selecting
        from the Information Schema FILES
        table.
      
        Tablespace id and
        Tablespace are also displayed for Disk Data
        tables.
      
        For fully replicated tables, ndb_desc shows
        only the nodes holding primary partition fragment replicas;
        nodes with copy fragment replicas (only) are ignored. You can
        obtain such information, using the mysql
        client, from the
        table_distribution_status,
        table_fragments,
        table_info, and
        table_replicas tables in the
        ndbinfo database.
      
All options that can be used with ndb_desc are shown in the following table. Additional descriptions follow the table.
- --auto-inc,- -a- Show the next value for a table's - AUTO_INCREMENTcolumn, if it has one.
- --blob-info,- -b- Include information about subordinate - BLOBand- TEXTcolumns.- Use of this option also requires the use of the - --extra-partition-info(- -p) option.
- 
Command-Line Format --character-sets-dir=pathDirectory containing character sets. 
- 
Command-Line Format --connect-retries=#Type Integer Default Value 12Minimum Value 0Maximum Value 12Number of times to retry connection before giving up. 
- 
Command-Line Format --connect-retry-delay=#Type Integer Default Value 5Minimum Value 0Maximum Value 5Number of seconds to wait between attempts to contact management server. 
- 
Command-Line Format --connect-string=connection_stringType String Default Value [none]Same as --ndb-connectstring.
- --context,- -x- Show additional contextual information for the table such as schema, database name, table name, and the table's internal ID. 
- 
Command-Line Format --core-fileWrite core file on error; used in debugging. 
- Specify the database in which the table should be found. 
- 
Command-Line Format --defaults-extra-file=pathType String Default Value [none]Read given file after global files are read. 
- 
Command-Line Format --defaults-file=pathType String Default Value [none]Read default options from given file only. 
- 
Command-Line Format --defaults-group-suffix=stringType String Default Value [none]Also read groups with concat(group, suffix). 
- Include information about the mappings between table partitions and the data nodes upon which they reside. This information can be useful for verifying distribution awareness mechanisms and supporting more efficient application access to the data stored in NDB Cluster. - Use of this option also requires the use of the - --extra-partition-info(- -p) option.
- Print additional information about the table's partitions. 
- 
Command-Line Format --helpDisplay help text and exit. 
- 
Command-Line Format --login-path=pathType String Default Value [none]Read given path from login file. 
- 
Command-Line Format --no-login-pathsSkips reading options from the login path file. 
- 
Command-Line Format --ndb-connectstring=connection_stringType String Default Value [none]Set connect string for connecting to ndb_mgmd. Syntax: [nodeid=. Overrides entries inid;][host=]hostname[:port]NDB_CONNECTSTRINGandmy.cnf.
- 
Command-Line Format --ndb-mgm-tls=levelType Enumeration Default Value relaxedValid Values relaxedstrictSets the level of TLS support required to connect to the management server; one of relaxedorstrict.relaxed(the default) means that a TLS connection is attempted, but success is not required;strictmeans that TLS is required to connect.
- 
Command-Line Format --ndb-mgmd-host=connection_stringType String Default Value [none]Same as --ndb-connectstring.
- 
Command-Line Format --ndb-nodeid=#Type Integer Default Value [none]Set node ID for this node, overriding any ID set by --ndb-connectstring.
- --ndb-optimized-node-selection- Command-Line Format - --ndb-optimized-node-selection- Enable optimizations for selection of nodes for transactions. Enabled by default; use - --skip-ndb-optimized-node-selectionto disable.
- 
Command-Line Format --ndb-tls-search-path=listType Path name Default Value (Unix) $HOME/ndb-tlsDefault Value (Windows) $HOMEDIR/ndb-tlsSpecify a list of directories to search for a CA file. On Unix platforms, the directory names are separated by colons ( :); on Windows systems, the semicolon character (;) is used as the separator. A directory reference may be relative or absolute; it may contain one or more environment variables, each denoted by a prefixed dollar sign ($), and expanded prior to use.Searching begins with the leftmost named directory and proceeds from left to right until a file is found. An empty string denotes an empty search path, which causes all searches to fail. A string consisting of a single dot ( .) indicates that the search path limited to the current working directory.If no search path is supplied, the compiled-in default value is used. This value depends on the platform used: On Windows, this is \ndb-tls; on other platforms (including Linux), it is$HOME/ndb-tls. This can be overridden by compiling NDB Cluster using-DWITH_NDB_TLS_SEARCH_PATH.
- 
Command-Line Format --no-defaultsDo not read default options from any option file other than login file. 
- 
Command-Line Format --print-defaultsPrint program argument list and exit. 
- --retries=,- #- -r- Try to connect this many times before giving up. One connect attempt is made per second. 
- --table=,- tbl_name- -t- Specify the table in which to look for an index. 
- --unqualified,- -u- Use unqualified table names. 
- 
Command-Line Format --usageDisplay help text and exit; same as --help.
- 
Command-Line Format --versionDisplay version information and exit. 
Table indexes listed in the output are ordered by ID.