ndb_index_stat は、NDB
テーブルのインデックスに関するフラグメントごとの統計情報を表示します。
これには、キャッシュバージョンと経過期間、パーティションごとのインデックスエントリの数、およびインデックスによるメモリー使用量が含まれます。
使用法
指定した NDB
テーブルの基本的なインデックス統計を取得するには、最初の引数としてテーブル名を指定し、--database
(-d
)
オプションを使用してこのテーブルが含まれているデータベース名をその直後に指定して、ndb_index_stat
を次のように呼び出します。
ndb_index_stat table -d database
この例では、ndb_index_stat
を使用して、test
データベースの
mytable
という名前の
NDB
テーブルに関するそのような情報を取得しています。
shell> ndb_index_stat -d test mytable
table:City index:PRIMARY fragCount:2
sampleVersion:3 loadTime:1399585986 sampleCount:1994 keyBytes:7976
query cache: valid:1 sampleCount:1994 totalBytes:27916
times in ms: save: 7.133 sort: 1.974 sort per sample: 0.000
NDBT_ProgramExit: 0 - OK
sampleVersion
は、統計データが取得されたキャッシュのバージョン番号です。
--update
オプションを指定して ndb_index_stat
を実行すると、sampleVersion が増分されます。
loadTime
はキャッシュが最後に更新された時間を示しています。
これは UNIX
エポックからの秒数として表されます。
sampleCount
はパーティションごとに見つかったインデックスエントリの数です。
エントリの合計数を見積もるには、これをフラグメントの数
(fragCount
として表示されます)
で乗算します。
sampleCount
は SHOW
INDEX
または
INFORMATION_SCHEMA.STATISTICS
のカーディナリティーと似ています。ただし、後者の
2
つはテーブル全体の統計を示し、ndb_index_stat
はフラグメントごとの平均を示します。
keyBytes
はインデックスによって使用されるバイト数です。
この例では、主キーは整数であり、各インデックスに
4
バイトが必要となるため、keyBytes
はこの場合次のように計算できます。
keyBytes = sampleCount * (4 bytes per index) = 1994 * 4 = 7976
この情報は、INFORMATION_SCHEMA.COLUMNS
の対応するカラム定義を使用して取得することもできます
(これには、MySQL Server および MySQL
クライアントアプリケーションが必要となります)。
totalBytes
はテーブルのすべてのインデックスで使用される合計メモリーです
(バイト単位)。
前述の例に示されている時間は、ndb_index_stat の各呼び出しに固有のものです。
--verbose
オプションを指定すると、次のように追加出力が表示されます。
shell> ndb_index_stat -d test mytable --verbose
random seed 1337010518
connected
loop 1 of 1
table:mytable index:PRIMARY fragCount:4
sampleVersion:2 loadTime:1336751773 sampleCount:0 keyBytes:0
read stats
query cache created
query cache: valid:1 sampleCount:0 totalBytes:0
times in ms: save: 20.766 sort: 0.001
disconnected
NDBT_ProgramExit: 0 - OK
shell>
プログラムからの出力が NDBT_ProgramExit: 0 -
OK
のみの場合は、統計がまだ存在しないことを示している可能性があります。
これらを強制的に作成
(またはすでに存在する場合は更新)
するには、--update
オプションを指定して ndb_index_stat
を起動するか、mysql
クライアントのテーブルで
ANALYZE TABLE
を実行します。
オプション
次のテーブルに、NDB Cluster ndb_index_stat ユーティリティーに固有のオプションを示します。 詳しい説明は表のあとに一覧されています。 ほとんどの NDB Cluster プログラム (ndb_index_stat を含む) に共通のオプションについては、セクション23.4.32「NDB Cluster プログラムに共通のオプション — NDB Cluster プログラムに共通のオプション」 を参照してください。
表 23.36 プログラムで使用されるコマンドライン・オプション ndb_index_stat
形式 | 説明 | 追加、非推奨、または削除された |
---|---|---|
テーブルが含まれているデータベースの名前 | (MySQLに基づくすべてのNDBリリースでサポート 8.0) |
|
テーブルのインデックス統計を削除し、以前に構成された自動更新を停止 | (MySQLに基づくすべてのNDBリリースでサポート 8.0) |
|
テーブルのインデックス統計を更新し、以前に構成された自動更新を再起動 | (MySQLに基づくすべてのNDBリリースでサポート 8.0) |
|
クエリーキャッシュの印刷 | (MySQLに基づくすべてのNDBリリースでサポート 8.0) |
|
最初のキー属性に対してランダム範囲クエリーを実行します (int unsigned である必要があります) | (MySQLに基づくすべてのNDBリリースでサポート 8.0) |
|
NDB カーネルの統計テーブルおよびイベントを削除します (すべての統計が失われます) | (MySQLに基づくすべてのNDBリリースでサポート 8.0) |
|
NDB カーネルにすべての統計テーブルおよびイベントを作成します (それらがまったく存在していなかった場合) | (MySQLに基づくすべてのNDBリリースでサポート 8.0) |
|
NDB カーネルにあらかじめ存在しない統計テーブルおよびイベントを作成します | (MySQLに基づくすべてのNDBリリースでサポート 8.0) |
|
NDB カーネルにまだ存在しない統計テーブルまたはイベントを、無効なものを削除したあとに作成 | (MySQLに基づくすべてのNDBリリースでサポート 8.0) |
|
NDB システムのインデックス統計およびイベントテーブルが存在することを確認します | (MySQLに基づくすべてのNDBリリースでサポート 8.0) |
|
sys-* オプションをテーブルに適用しません | (MySQLに基づくすべてのNDBリリースでサポート 8.0) |
|
sys-* オプションをイベントに適用しません | (MySQLに基づくすべてのNDBリリースでサポート 8.0) |
|
冗長出力を有効にします | (MySQLに基づくすべてのNDBリリースでサポート 8.0) |
|
指定したコマンドを実行する回数を設定します。デフォルトは 0 です | (MySQLに基づくすべてのNDBリリースでサポート 8.0) |
ndb_index_stat の統計オプション. 次のオプションはインデックス統計を生成するために使用します。 これらは指定されたテーブルおよびデータベースを処理します。 これらはシステムオプション (ndb_index_stat のシステムオプションを参照してください) と混在させることはできません。
-
コマンド行形式 --database=name
型 文字列 デフォルト値 [none]
最小値 最大値 問い合わせるテーブルが含まれているデータベースの名前。
-
コマンド行形式 --delete
型 Boolean デフォルト値 false
最小値 最大値 指定したテーブルのインデックス統計を削除し、以前構成された自動更新を停止します。
-
コマンド行形式 --update
型 Boolean デフォルト値 false
最小値 最大値 指定したテーブルのインデックス統計を更新し、以前構成された自動更新を再開します。
-
コマンド行形式 --dump
型 Boolean デフォルト値 false
最小値 最大値 クエリーキャッシュの内容をダンプします。
-
コマンド行形式 --query=#
型 数値 デフォルト値 0
最小値 0
最大値 MAX_INT
最初のキー属性 (符号なしの int である必要があります) に対してランダム範囲クエリーを実行します。
ndb_index_stat のシステムオプション. 次のオプションは、NDB カーネルの統計テーブルを生成および更新するために使用します。 これらのオプションは、統計オプションと混在させることはできません (ndb_index_stat の統計オプションを参照してください)。
-
コマンド行形式 --sys-drop
型 Boolean デフォルト値 false
最小値 最大値 NDB カーネルのすべての統計テーブルおよびイベントを削除します。 これを実行すると、すべての統計が失われます。
-
コマンド行形式 --sys-create
型 Boolean デフォルト値 false
最小値 最大値 NDB カーネルにすべての統計テーブルおよびイベントを作成します。 これはそれらがあらかじめ存在していなかった場合にのみ動作します。
-
コマンド行形式 --sys-create-if-not-exist
型 Boolean デフォルト値 false
最小値 最大値 このプログラムが呼び出されたときにあらかじめ存在していなかった NDB システム統計テーブルまたはイベント (あるいはその両方) を作成します。
-
コマンド行形式 --sys-create-if-not-valid
型 Boolean デフォルト値 false
最小値 最大値 無効なものを削除したあとにあらかじめ存在していなかった NDB システムの統計テーブルまたはイベントを作成します。
-
コマンド行形式 --sys-check
型 Boolean デフォルト値 false
最小値 最大値 必要なすべてのシステム統計テーブルおよびイベントが NDB カーネルに存在することを検証します。
-
コマンド行形式 --sys-skip-tables
型 Boolean デフォルト値 false
最小値 最大値 --sys-*
オプションを統計テーブルに適用しません。 -
コマンド行形式 --sys-skip-events
型 Boolean デフォルト値 false
最小値 最大値 --sys-*
オプションをイベントに適用しません。 -
コマンド行形式 --verbose
型 Boolean デフォルト値 false
最小値 最大値 冗長出力を有効にします。
-
コマンド行形式 --loops=#
型 数値 デフォルト値 0
最小値 0
最大値 MAX_INT
コマンドをこの回数繰り返します (テストで使用するため)。