Spec-Zone.ru › MySQL 8.4

25.5.9 ndb_desc — Описание таблиц NDB

ndb_desc предоставляет подробное описание одной или нескольких таблиц NDB.

Использование

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 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);

Вывод команды 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               0

Информация о нескольких таблицах может быть получена в одном вызове ndb_desc с использованием их имён, разделённых пробелами. Все таблицы должны находиться в одной базе данных.

Вы можете получить дополнительную информацию о конкретном индексе, используя параметр --table (краткая форма: -t) и указав имя индекса в качестве первого аргумента к ndb_desc, как показано здесь:

$> ./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

Когда индекс указан таким образом, параметры --extra-partition-info и --extra-node-info не имеют эффекта.

Столбец Version в выводе содержит версию объекта схемы таблицы. Для получения информации об интерпретации этого значения, см. Версии объектов схемы NDB.

Три свойства таблицы, которые можно задать с помощью NDB_TABLE комментариев, встроенных в команды CREATE TABLE и ALTER TABLE, также видны в выводе ndb_desc. Свойство FRAGMENT_COUNT_TYPE таблицы всегда отображается в столбце FragmentCountType. READ_ONLY и FULLY_REPLICATED, если установлены в 1, отображаются в столбце Table options. Вы можете увидеть это после выполнения следующей команды ALTER TABLE в клиенте mysql:

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)

Предупреждение выдаётся, потому что READ_ONLY=1 требует, чтобы тип количества фрагментов таблицы был (или был установлен в) ONE_PER_LDM_PER_NODE_GROUP; NDB автоматически устанавливает это в таких случаях. Вы можете проверить, что команда ALTER TABLE дала нужный результат, используя 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)

Поскольку FRAGMENT_COUNT_TYPE не было явно установлено, его значение не отображается в тексте комментария, выводимом SHOW CREATE TABLE. Однако ndb_desc отображает обновлённое значение этого атрибута. Столбец Table options отображает только что включённые двоичные свойства. Вы можете увидеть это в приведённом ниже выводе (выделенный текст):

$> ./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_space

Более подробную информацию о свойствах этих таблиц см. в разделе 15.1.20.12, «Указание параметров комментариев NDB».

Столбцы 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;

(Дополнительную информацию об этих командах и создаваемых ими объектах см. в разделе 25.6.11.1, «Объекты дисковых данных NDB Cluster», а также в разделе 15.1.16, «CREATE LOGFILE GROUP Statement» и разделе 15.1.21, «CREATE TABLESPACE Statement».)

Теперь мы можем создать и заполнить версию таблицы fish, которая хранит 2 её колонки на диске (сначала удалив предыдущую версию таблицы, если она уже существует):

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);

При запуске ndb_desc на этой версии таблицы отображается следующий вывод:

$> ./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

Это означает, что для этой таблицы на каждом разделе выделяется 1048576 байт из табличного пространства, из которых 1044440 байта остаются свободными для дополнительного хранения. Другими словами, 1048576 - 1044440 = 4136 байт на раздел в настоящее время используется для хранения данных из колонок таблицы, расположенных на диске. Количество байт, отображаемое как Free extent_space, доступно для хранения данных столбцов на диске только из таблицы fish; по этой причине оно не отображается при выборе из таблицы Информационной Схемы FILES.

Tablespace id и Tablespace также отображаются для таблиц Дисковых данных.

Для полностью реплицированных таблиц ndb_desc отображает только узлы, содержащие реплики фрагментов первичного раздела; узлы с репликами фрагментов копии (только) игнорируются. Вы можете получить такую информацию, используя клиент mysql, из таблиц table_distribution_status, table_fragments, table_info и table_replicas в базе данных ndbinfo.

Все параметры, которые можно использовать с ndb_desc, показаны в следующей таблице. Дополнительные описания следуют за таблицей.

END_OF_DOCUMENT_MARKER
  • --auto-inc, -a

    Показать следующее значение для столбца AUTO_INCREMENT таблицы, если таковой имеется.

  • --blob-info, -b

    Включить информацию о подчиненных столбцах BLOB и TEXT.

    Использование этой опции также требует использования опции --extra-partition-info (-p).

  • --character-sets-dir

    Формат командной строки --character-sets-dir=path

    Каталог, содержащий кодировки символов.

  • --connect-retries

    Формат командной строки --connect-retries=#
    Тип Integer
    Значение по умолчанию 12
    Минимальное значение 0
    Максимальное значение 12

    Количество попыток повторного подключения перед отказом.

  • --connect-retry-delay

    Формат командной строки --connect-retry-delay=#
    Тип Integer
    Значение по умолчанию 5
    Минимальное значение 0
    Максимальное значение 5

    Количество секунд ожидания между попытками связаться с сервером управления.

  • --connect-string

    Формат командной строки --connect-string=connection_string
    Тип String
    Значение по умолчанию [none]

    То же, что и --ndb-connectstring.

  • --context, -x

    Показать дополнительную контекстную информацию для таблицы, такую как схема, имя базы данных, имя таблицы и внутренний ID таблицы.

  • --core-file

    Формат командной строки --core-file

    Записать файл дампа памяти при ошибке; используется при отладке.

  • --database=db_name, -d

    Указать базу данных, в которой должна находиться таблица.

  • --defaults-extra-file

    Формат командной строки --defaults-extra-file=path
    Тип String
    Значение по умолчанию [none]

    Прочитать заданный файл после чтения глобальных файлов.

  • --defaults-file

    Формат командной строки --defaults-file=path
    Тип String
    Значение по умолчанию [none]

    Прочитать параметры по умолчанию только из заданного файла.

  • --defaults-group-suffix

    Формат командной строки --defaults-group-suffix=string
    Тип String
    Значение по умолчанию [none]

    Также прочитать группы с concat(group, suffix).

  • --extra-node-info, -n

    Включить информацию о сопоставлениях между разделами таблицы и узлами данных, на которых они находятся. Эта информация может быть полезна для проверки механизмов распределенного доступа и обеспечения более эффективного доступа приложений к данным, хранящимся в NDB Cluster.

    Использование этой опции также требует использования опции --extra-partition-info (-p).

  • --extra-partition-info, -p

    Вывести дополнительную информацию о разделах таблицы.

  • --help

    Формат командной строки --help

    Отобразить справку и завершить работу.

  • --login-path

    Формат командной строки --login-path=path
    Тип String
    Значение по умолчанию [none]

    Прочитать заданный путь из файла входа.

  • --no-login-paths

    Формат командной строки --no-login-paths

    Пропускает чтение параметров из файла пути входа.

  • --ndb-connectstring

    Формат командной строки --ndb-connectstring=connection_string
    Тип String
    Значение по умолчанию [none]

    Установить строку подключения для подключения к ndb_mgmd. Синтаксис: [nodeid=id;][host=]hostname[:port]. Переопределяет записи в NDB_CONNECTSTRING и my.cnf.

  • --ndb-mgm-tls

    Формат командной строки --ndb-mgm-tls=level
    Тип Enumeration
    Значение по умолчанию relaxed
    Допустимые значения

    relaxed

    strict

    Устанавливает уровень поддержки TLS, необходимый для подключения к серверу управления; один из relaxed или strict. relaxed (по умолчанию) означает, что предпринимается попытка установить TLS-соединение, но успех не обязателен; strict означает, что для подключения требуется TLS.

  • --ndb-mgmd-host

    Формат командной строки --ndb-mgmd-host=connection_string
    Тип String
    Значение по умолчанию [none]

    То же, что и --ndb-connectstring.

  • --ndb-nodeid

    Формат командной строки --ndb-nodeid=#
    Тип Integer
    Значение по умолчанию [none]

    Установить ID узла для этого узла, переопределив любой ID, установленный --ndb-connectstring.

  • --ndb-optimized-node-selection

    Формат командной строки --ndb-optimized-node-selection

    Включает оптимизации для выбора узлов для транзакций. Включено по умолчанию; используйте --skip-ndb-optimized-node-selection для отключения.

  • --ndb-tls-search-path

    Формат командной строки --ndb-tls-search-path=list
    Тип Имя пути
    Значение по умолчанию (Unix) $HOME/ndb-tls
    Значение по умолчанию (Windows) $HOMEDIR/ndb-tls

    Указывает список каталогов для поиска файла CA. На платформах Unix имена каталогов разделяются двоеточиями (:); на системах Windows в качестве разделителя используется точка с запятой (;). Ссылка на каталог может быть относительной или абсолютной; она может содержать одну или несколько переменных среды, каждая из которых обозначается префиксом символа доллара ($), и расширяется перед использованием.

    Поиск начинается с самого левого указанного каталога и выполняется слева направо до тех пор, пока не будет найден файл. Пустая строка обозначает пустой путь поиска, что приводит к тому, что все поиски завершатся неудачей. Строка, состоящая из одной точки (.), указывает, что путь поиска ограничен текущим рабочим каталогом.

    Если путь поиска не указан, используется значение по умолчанию, скомпилированное в программу. Это значение зависит от используемой платформы: в Windows это \ndb-tls; на других платформах (включая Linux) это $HOME/ndb-tls. Это можно переопределить, скомпилировав NDB Cluster с использованием -DWITH_NDB_TLS_SEARCH_PATH.

  • --no-defaults

    Формат командной строки --no-defaults

    Не читать параметры по умолчанию из какого-либо файла параметров, кроме файла входа.

  • --print-defaults

    Формат командной строки --print-defaults

    Вывод списка аргументов программы и выход.

  • --retries=#, -r

    Попытаться подключиться столько раз, прежде чем отказаться. Одна попытка подключения выполняется каждую секунду.

  • --table=tbl_name, -t

    Указать таблицу, в которой следует искать индекс.

  • --unqualified, -u

    Использовать имена таблиц без квалификаторов.

  • --usage

    Формат командной строки --usage

    Отображение текста справки и выход; то же, что и --help.

  • --version

    Формат командной строки --version

    Отображение информации о версии и выход.

Индексы таблиц, перечисленные в выводе, упорядочены по ID.

© 2025 Oracle
Licensed under the GPLv2 License.
https://docs.oracle.com/cd/E17952_01/mysql-8.4-en/mysql-cluster-programs-ndb-desc.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API