ndb_desc は、1 つ以上の NDB
テーブルの詳細な説明を出力します。
使用法
ndb_desc -c connect_string tbl_name -d db_name [-p]
ndb_desc -c connect_string index_name -d db_name -t tbl_name
出力例
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 の出力:
shell> ./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 を 1 回呼び出すことによって取得できます。すべてのテーブルは同じデータベースにある必要があります。
特定のインデックスに関する追加情報を取得するには、次に示すように ndb_desc の最初の引数としてインデックス名を指定して --table
(短縮形: -t
) オプションを使用します。
shell> ./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
カラムには、テーブルのスキーマオブジェクトバージョンが表示されます。この値の解釈については、NDB Schema Object Versionsを参照してください。
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.5.12.1「MySQL Cluster ディスクデータオブジェクト」、セクション13.1.14「CREATE LOGFILE GROUP 構文」、およびセクション13.1.18「CREATE TABLESPACE 構文」を参照してください。)
カラムの 2 をディスクに格納するバージョンの fish
テーブルを作成して移入できるようになりました (前のバージョンのテーブルが存在する場合はそれを最初に削除します)。
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 をこのバージョンのテーブルに対して実行すると、次の出力が表示されます。
shell> ./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 に固有のオプションが含まれています。追加説明が表のあとにあります。ほとんどの MySQL Cluster プログラム (ndb_desc を含む) に共通するオプションについては、セクション18.4.27「MySQL Cluster プログラムに共通するオプション — MySQL Cluster プログラムに共通するオプション」を参照してください。
表 18.84 この表は、ndb_desc プログラムのコマンド行オプションについて説明しています
形式 | 説明 | 追加または削除 |
---|---|---|
BLOB テーブルのパーティション情報を出力に含めます。-p オプションも使用する必要があります |
すべての MySQL 5.6 ベースリリース |
|
テーブルが含まれているデータベースの名前 |
すべての MySQL 5.6 ベースリリース |
|
パーティションとデータノードのマッピングを出力に含めます。-p オプションも使用する必要があります |
すべての MySQL 5.6 ベースリリース |
|
パーティションに関する情報を表示します |
すべての MySQL 5.6 ベースリリース |
|
接続を再試行する回数 (1 秒おき) |
すべての MySQL 5.6 ベースリリース |
|
インデックスを探すテーブルを指定します。このオプションを使用すると、-p および -n は効果がなくなり、無視されます。 |
すべての MySQL 5.6 ベースリリース |
|
修飾されていないテーブル名を使用します |
すべての MySQL 5.6 ベースリリース |
-
従属する
BLOB
およびTEXT
カラムに関する情報を含めます。このオプションを使用する場合は、
--extra-partition-info
(-p
) オプションも使用する必要があります。 -
テーブルが見つかるはずのデータベースを指定します。
-
テーブルパーティションおよびそれらが存在するデータノードのマッピングに関する情報を含めます。この情報は、配布認識メカニズムを検証するため、および MySQL Cluster に格納されているデータへのより効率的なアプリケーションアクセスをサポートするために役に立ちます。
このオプションを使用する場合は、
--extra-partition-info
(-p
) オプションも使用する必要があります。 -
テーブルのパーティションに関する追加情報を出力します。
-
接続を停止する前に、この回数だけ接続を試みます。接続の試行は 1 秒おきに実行されます。
-
インデックスを探すテーブルを指定します。
-
修飾されていないテーブル名を使用します。