MySQL 8.0 リファレンスマニュアル MySQL NDB Cluster 8.0 を含む

このページは機械翻訳したものです。

23.4.14 ndb_index_stat — NDB インデックス統計ユーティリティー

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 として表示されます) で乗算します。

sampleCountSHOW 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

形式 説明 追加、非推奨、または削除された

--database=name,

-d

テーブルが含まれているデータベースの名前

(MySQLに基づくすべてのNDBリリースでサポート 8.0)

--delete

テーブルのインデックス統計を削除し、以前に構成された自動更新を停止

(MySQLに基づくすべてのNDBリリースでサポート 8.0)

--update

テーブルのインデックス統計を更新し、以前に構成された自動更新を再起動

(MySQLに基づくすべてのNDBリリースでサポート 8.0)

--dump

クエリーキャッシュの印刷

(MySQLに基づくすべてのNDBリリースでサポート 8.0)

--query=#

最初のキー属性に対してランダム範囲クエリーを実行します (int unsigned である必要があります)

(MySQLに基づくすべてのNDBリリースでサポート 8.0)

--sys-drop

NDB カーネルの統計テーブルおよびイベントを削除します (すべての統計が失われます)

(MySQLに基づくすべてのNDBリリースでサポート 8.0)

--sys-create

NDB カーネルにすべての統計テーブルおよびイベントを作成します (それらがまったく存在していなかった場合)

(MySQLに基づくすべてのNDBリリースでサポート 8.0)

--sys-create-if-not-exist

NDB カーネルにあらかじめ存在しない統計テーブルおよびイベントを作成します

(MySQLに基づくすべてのNDBリリースでサポート 8.0)

--sys-create-if-not-valid

NDB カーネルにまだ存在しない統計テーブルまたはイベントを、無効なものを削除したあとに作成

(MySQLに基づくすべてのNDBリリースでサポート 8.0)

--sys-check

NDB システムのインデックス統計およびイベントテーブルが存在することを確認します

(MySQLに基づくすべてのNDBリリースでサポート 8.0)

--sys-skip-tables

sys-* オプションをテーブルに適用しません

(MySQLに基づくすべてのNDBリリースでサポート 8.0)

--sys-skip-events

sys-* オプションをイベントに適用しません

(MySQLに基づくすべてのNDBリリースでサポート 8.0)

--verbose,

-v

冗長出力を有効にします

(MySQLに基づくすべてのNDBリリースでサポート 8.0)

--loops=#

指定したコマンドを実行する回数を設定します。デフォルトは 0 です

(MySQLに基づくすべてのNDBリリースでサポート 8.0)


ndb_index_stat の統計オプション.  次のオプションはインデックス統計を生成するために使用します。 これらは指定されたテーブルおよびデータベースを処理します。 これらはシステムオプション (ndb_index_stat のシステムオプションを参照してください) と混在させることはできません。

ndb_index_stat のシステムオプション.  次のオプションは、NDB カーネルの統計テーブルを生成および更新するために使用します。 これらのオプションは、統計オプションと混在させることはできません (ndb_index_stat の統計オプションを参照してください)。