Spec-Zone.ru › MySQL 5.7

21.5.10 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(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 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


NDBT_ProgramExit: 0 - OK

Информация о нескольких таблицах может быть получена в одном вызове 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

NDBT_ProgramExit: 0 - OK

Когда индекс указан таким образом, опции --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=latin1
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

NDBT_ProgramExit: 0 - OK

Для получения дополнительной информации об этих свойствах таблиц см. Раздел 13.1.18.9, «Установка параметров комментариев 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;

(Для получения дополнительной информации о показанных инструкциях и объектах, созданных ими, см. Раздел 21.6.11.1, «Объекты данных на диске NDB Cluster», а также Раздел 13.1.15, «CREATE LOGFILE GROUP Statement» и Раздел 13.1.19, «CREATE TABLESPACE Statement».)

Теперь мы можем создать и заполнить версию таблицы 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
    (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: 346
Max Rows: 0
Row Checksum: 1
Row GCI: 1
SingleUserMode: 0
ForceVarPart: 1
PartitionCount: 2
FragmentCount: 2
FragmentCountType: ONE_PER_LDM_PER_NODE
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
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


NDBT_ProgramExit: 0 - OK

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

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

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

Таблица 21.29 Параметры командной строки, используемые с программой ndb_desc

Таблица 21.29 Параметры командной строки, используемые с программой ndb_desc
Формат Описание Добавлен, устарел или удален

--auto-inc,

-a

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

ДОБАВЛЕН: NDB 7.6.14

--blob-info,

-b

Включить информацию о разбиении для таблиц BLOB в выходные данные. Требуется использование параметра -p

(Поддерживается во всех выпусках NDB на основе MySQL 5.7)

--character-sets-dir=path

Директория, содержащая наборы символов

(Поддерживается во всех выпусках NDB на основе MySQL 5.7)

--connect-retries=#

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

(Поддерживается во всех выпусках NDB на основе MySQL 5.7)

--connect-retry-delay=#

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

(Поддерживается во всех выпусках NDB на основе MySQL 5.7)

--connect-string=connection_string,

-c connection_string

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

(Поддерживается во всех выпусках NDB на основе MySQL 5.7)

--context,

-x

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

ДОБАВЛЕН: NDB 7.6.14

--core-file

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

(Поддерживается во всех выпусках NDB на основе MySQL 5.7)

--database=name,

-d name

Имя базы данных, содержащей таблицу

(Поддерживается во всех выпусках NDB на основе MySQL 5.7)

--defaults-extra-file=path

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

(Поддерживается во всех выпусках NDB на основе MySQL 5.7)

--defaults-file=path

Чтение параметров по умолчанию только из указанного файла

(Поддерживается во всех выпусках NDB на основе MySQL 5.7)

--defaults-group-suffix=string

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

(Поддерживается во всех выпусках NDB на основе MySQL 5.7)

--extra-node-info,

-n

Включить сопоставления разделов с узлами данных в выходные данные; требуется --extra-partition-info

(Поддерживается во всех выпусках NDB на основе MySQL 5.7)

--extra-partition-info,

-p

Отображать информацию о разделах

(Поддерживается во всех выпусках NDB на основе MySQL 5.7)

--help,

-?

Отобразить текст справки и выйти

(Поддерживается во всех выпусках NDB на основе MySQL 5.7)

--login-path=path

Чтение указанного пути из файла авторизации

(Поддерживается во всех выпусках NDB на основе MySQL 5.7)

--ndb-connectstring=connection_string,

-c connection_string

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

(Поддерживается во всех выпусках NDB на основе MySQL 5.7)

--ndb-mgmd-host=connection_string,

-c connection_string

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

(Поддерживается во всех выпусках NDB на основе MySQL 5.7)

--ndb-nodeid=#

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

(Поддерживается во всех выпусках NDB на основе MySQL 5.7)

--ndb-optimized-node-selection

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

(Поддерживается во всех выпусках NDB на основе MySQL 5.7)

--no-defaults

Не читать параметры по умолчанию из файла параметров, кроме файла авторизации

(Поддерживается во всех выпусках NDB на основе MySQL 5.7)

--print-defaults

Вывести список аргументов программы и завершить работу

(Поддерживается во всех выпусках NDB на основе MySQL 5.7)

--retries=#,

-r #

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

(Поддерживается во всех выпусках NDB на основе MySQL 5.7)

--table=name,

-t name

Указать таблицу, в которой нужно найти индекс. При использовании этого параметра -p и -n не имеют эффекта и игнорируются

(Поддерживается во всех выпусках NDB на основе MySQL 5.7)

--unqualified,

-u

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

(Поддерживается во всех выпусках NDB на основе MySQL 5.7)

--usage,

-?

Отобразить текст справки и выйти; то же, что и --help

(Поддерживается во всех выпусках NDB на основе MySQL 5.7)

--version,

-V

Отобразить информацию о версии и выйти

(Поддерживается во всех выпусках NDB на основе MySQL 5.7)


  • --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=#
    Тип Целое число
    Значение по умолчанию 12
    Минимальное значение 0
    Максимальное значение 12

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

  • --connect-retry-delay

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

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

  • --connect-string

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

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

  • --context, -x

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

  • --core-file

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

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

  • --database=db_name, -d

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

  • --defaults-extra-file

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

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

  • --defaults-file

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

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

  • --defaults-group-suffix

    Формат командной строки --defaults-group-suffix=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
    Тип Строка
    Значение по умолчанию [none]

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

  • --ndb-connectstring

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

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

  • --ndb-mgmd-host

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

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

  • --ndb-nodeid

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

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

  • --ndb-optimized-node-selection

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

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

  • --no-defaults

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

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

  • --print-defaults

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

    Вывести список аргументов программы и завершить работу.

  • --retries=#, -r

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

  • --table=tbl_name, -t

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

  • --unqualified, -u

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

  • --usage

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

    Вывести справочную информацию и завершить работу; то же, что и --help.

  • --version

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

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

В NDB 7.5.3 и более поздних версиях, индексы таблиц, перечисленные в выводе, упорядочены по ID. Ранее это не было детерминированным и могло меняться в зависимости от платформы. (Ошибка #81763, Ошибка #23547742)

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

Spec-Zone.ru

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