Documentation Home
MySQL 8.0 リファレンスマニュアル
Download this Manual
PDF (US Ltr) - 36.1Mb
PDF (A4) - 36.2Mb


MySQL 8.0 リファレンスマニュアル  /  ...  /  NDB API 統計のカウンタと変数

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

23.5.13 NDB API 統計のカウンタと変数

Ndb オブジェクトによって実行されるアクションや、これらのオブジェクトに影響を与えるアクションに関する多くのタイプの統計カウンタを使用できます。 このようなアクションには、トランザクションの開始と終了 (または中止)、主キーおよび一意のキーの操作、テーブルスキャン、範囲スキャン、およびプルーニングスキャン、さまざまな操作が完了するまで待機している間にブロックされたスレッド、NDBCLUSTER によって送受信されたデータおよびイベントが含まれます。 NDB API 呼び出しが行われるか、データノードがデータを送受信するたびに、NDB カーネル内でカウンタが増分されます。mysqld は、これらのカウンタをシステムステータス変数として公開します。それらの値は、SHOW STATUS の出力で読み取るか、パフォーマンススキーマ session_status または global_status テーブルをクエリーすることによって読み取ることができます。 NDB テーブルを操作するステートメントの前後で値を比較すると、API レベルで実行された対応するアクション、およびステートメントを実行するコストを確認できます。

次の SHOW STATUS ステートメントを使用すると、これらのステータス変数をすべて一覧表示できます。

Press CTRL+C to copy
mysql> SHOW STATUS LIKE 'ndb_api%'; +--------------------------------------------+----------+ | Variable_name | Value | +--------------------------------------------+----------+ | Ndb_api_wait_exec_complete_count_session | 0 | | Ndb_api_wait_scan_result_count_session | 0 | | Ndb_api_wait_meta_request_count_session | 0 | | Ndb_api_wait_nanos_count_session | 0 | | Ndb_api_bytes_sent_count_session | 0 | | Ndb_api_bytes_received_count_session | 0 | | Ndb_api_trans_start_count_session | 0 | | Ndb_api_trans_commit_count_session | 0 | | Ndb_api_trans_abort_count_session | 0 | | Ndb_api_trans_close_count_session | 0 | | Ndb_api_pk_op_count_session | 0 | | Ndb_api_uk_op_count_session | 0 | | Ndb_api_table_scan_count_session | 0 | | Ndb_api_range_scan_count_session | 0 | | Ndb_api_pruned_scan_count_session | 0 | | Ndb_api_scan_batch_count_session | 0 | | Ndb_api_read_row_count_session | 0 | | Ndb_api_trans_local_read_row_count_session | 0 | | Ndb_api_event_data_count_injector | 0 | | Ndb_api_event_nondata_count_injector | 0 | | Ndb_api_event_bytes_count_injector | 0 | | Ndb_api_wait_exec_complete_count_slave | 0 | | Ndb_api_wait_scan_result_count_slave | 0 | | Ndb_api_wait_meta_request_count_slave | 0 | | Ndb_api_wait_nanos_count_slave | 0 | | Ndb_api_bytes_sent_count_slave | 0 | | Ndb_api_bytes_received_count_slave | 0 | | Ndb_api_trans_start_count_slave | 0 | | Ndb_api_trans_commit_count_slave | 0 | | Ndb_api_trans_abort_count_slave | 0 | | Ndb_api_trans_close_count_slave | 0 | | Ndb_api_pk_op_count_slave | 0 | | Ndb_api_uk_op_count_slave | 0 | | Ndb_api_table_scan_count_slave | 0 | | Ndb_api_range_scan_count_slave | 0 | | Ndb_api_pruned_scan_count_slave | 0 | | Ndb_api_scan_batch_count_slave | 0 | | Ndb_api_read_row_count_slave | 0 | | Ndb_api_trans_local_read_row_count_slave | 0 | | Ndb_api_wait_exec_complete_count | 2 | | Ndb_api_wait_scan_result_count | 3 | | Ndb_api_wait_meta_request_count | 27 | | Ndb_api_wait_nanos_count | 45612023 | | Ndb_api_bytes_sent_count | 992 | | Ndb_api_bytes_received_count | 9640 | | Ndb_api_trans_start_count | 2 | | Ndb_api_trans_commit_count | 1 | | Ndb_api_trans_abort_count | 0 | | Ndb_api_trans_close_count | 2 | | Ndb_api_pk_op_count | 1 | | Ndb_api_uk_op_count | 0 | | Ndb_api_table_scan_count | 1 | | Ndb_api_range_scan_count | 0 | | Ndb_api_pruned_scan_count | 0 | | Ndb_api_scan_batch_count | 0 | | Ndb_api_read_row_count | 1 | | Ndb_api_trans_local_read_row_count | 1 | | Ndb_api_event_data_count | 0 | | Ndb_api_event_nondata_count | 0 | | Ndb_api_event_bytes_count | 0 | +--------------------------------------------+----------+ 60 rows in set (0.02 sec)

これらのステータス変数は、次に示すように、パフォーマンススキーマ session_status および global_status テーブルからも使用できます:

Press CTRL+C to copy
mysql> SELECT * FROM performance_schema.session_status -> WHERE VARIABLE_NAME LIKE 'ndb_api%'; +--------------------------------------------+----------------+ | VARIABLE_NAME | VARIABLE_VALUE | +--------------------------------------------+----------------+ | NDB_API_WAIT_EXEC_COMPLETE_COUNT_SESSION | 2 | | NDB_API_WAIT_SCAN_RESULT_COUNT_SESSION | 0 | | NDB_API_WAIT_META_REQUEST_COUNT_SESSION | 1 | | NDB_API_WAIT_NANOS_COUNT_SESSION | 8144375 | | NDB_API_BYTES_SENT_COUNT_SESSION | 68 | | NDB_API_BYTES_RECEIVED_COUNT_SESSION | 84 | | NDB_API_TRANS_START_COUNT_SESSION | 1 | | NDB_API_TRANS_COMMIT_COUNT_SESSION | 1 | | NDB_API_TRANS_ABORT_COUNT_SESSION | 0 | | NDB_API_TRANS_CLOSE_COUNT_SESSION | 1 | | NDB_API_PK_OP_COUNT_SESSION | 1 | | NDB_API_UK_OP_COUNT_SESSION | 0 | | NDB_API_TABLE_SCAN_COUNT_SESSION | 0 | | NDB_API_RANGE_SCAN_COUNT_SESSION | 0 | | NDB_API_PRUNED_SCAN_COUNT_SESSION | 0 | | NDB_API_SCAN_BATCH_COUNT_SESSION | 0 | | NDB_API_READ_ROW_COUNT_SESSION | 1 | | NDB_API_TRANS_LOCAL_READ_ROW_COUNT_SESSION | 1 | | NDB_API_EVENT_DATA_COUNT_INJECTOR | 0 | | NDB_API_EVENT_NONDATA_COUNT_INJECTOR | 0 | | NDB_API_EVENT_BYTES_COUNT_INJECTOR | 0 | | NDB_API_WAIT_EXEC_COMPLETE_COUNT_SLAVE | 0 | | NDB_API_WAIT_SCAN_RESULT_COUNT_SLAVE | 0 | | NDB_API_WAIT_META_REQUEST_COUNT_SLAVE | 0 | | NDB_API_WAIT_NANOS_COUNT_SLAVE | 0 | | NDB_API_BYTES_SENT_COUNT_SLAVE | 0 | | NDB_API_BYTES_RECEIVED_COUNT_SLAVE | 0 | | NDB_API_TRANS_START_COUNT_SLAVE | 0 | | NDB_API_TRANS_COMMIT_COUNT_SLAVE | 0 | | NDB_API_TRANS_ABORT_COUNT_SLAVE | 0 | | NDB_API_TRANS_CLOSE_COUNT_SLAVE | 0 | | NDB_API_PK_OP_COUNT_SLAVE | 0 | | NDB_API_UK_OP_COUNT_SLAVE | 0 | | NDB_API_TABLE_SCAN_COUNT_SLAVE | 0 | | NDB_API_RANGE_SCAN_COUNT_SLAVE | 0 | | NDB_API_PRUNED_SCAN_COUNT_SLAVE | 0 | | NDB_API_SCAN_BATCH_COUNT_SLAVE | 0 | | NDB_API_READ_ROW_COUNT_SLAVE | 0 | | NDB_API_TRANS_LOCAL_READ_ROW_COUNT_SLAVE | 0 | | NDB_API_WAIT_EXEC_COMPLETE_COUNT | 4 | | NDB_API_WAIT_SCAN_RESULT_COUNT | 3 | | NDB_API_WAIT_META_REQUEST_COUNT | 28 | | NDB_API_WAIT_NANOS_COUNT | 53756398 | | NDB_API_BYTES_SENT_COUNT | 1060 | | NDB_API_BYTES_RECEIVED_COUNT | 9724 | | NDB_API_TRANS_START_COUNT | 3 | | NDB_API_TRANS_COMMIT_COUNT | 2 | | NDB_API_TRANS_ABORT_COUNT | 0 | | NDB_API_TRANS_CLOSE_COUNT | 3 | | NDB_API_PK_OP_COUNT | 2 | | NDB_API_UK_OP_COUNT | 0 | | NDB_API_TABLE_SCAN_COUNT | 1 | | NDB_API_RANGE_SCAN_COUNT | 0 | | NDB_API_PRUNED_SCAN_COUNT | 0 | | NDB_API_SCAN_BATCH_COUNT | 0 | | NDB_API_READ_ROW_COUNT | 2 | | NDB_API_TRANS_LOCAL_READ_ROW_COUNT | 2 | | NDB_API_EVENT_DATA_COUNT | 0 | | NDB_API_EVENT_NONDATA_COUNT | 0 | | NDB_API_EVENT_BYTES_COUNT | 0 | +--------------------------------------------+----------------+ 60 rows in set (0.00 sec) mysql> SELECT * FROM performance_schema.global_status -> WHERE VARIABLE_NAME LIKE 'ndb_api%'; +--------------------------------------------+----------------+ | VARIABLE_NAME | VARIABLE_VALUE | +--------------------------------------------+----------------+ | NDB_API_WAIT_EXEC_COMPLETE_COUNT_SESSION | 2 | | NDB_API_WAIT_SCAN_RESULT_COUNT_SESSION | 0 | | NDB_API_WAIT_META_REQUEST_COUNT_SESSION | 1 | | NDB_API_WAIT_NANOS_COUNT_SESSION | 8144375 | | NDB_API_BYTES_SENT_COUNT_SESSION | 68 | | NDB_API_BYTES_RECEIVED_COUNT_SESSION | 84 | | NDB_API_TRANS_START_COUNT_SESSION | 1 | | NDB_API_TRANS_COMMIT_COUNT_SESSION | 1 | | NDB_API_TRANS_ABORT_COUNT_SESSION | 0 | | NDB_API_TRANS_CLOSE_COUNT_SESSION | 1 | | NDB_API_PK_OP_COUNT_SESSION | 1 | | NDB_API_UK_OP_COUNT_SESSION | 0 | | NDB_API_TABLE_SCAN_COUNT_SESSION | 0 | | NDB_API_RANGE_SCAN_COUNT_SESSION | 0 | | NDB_API_PRUNED_SCAN_COUNT_SESSION | 0 | | NDB_API_SCAN_BATCH_COUNT_SESSION | 0 | | NDB_API_READ_ROW_COUNT_SESSION | 1 | | NDB_API_TRANS_LOCAL_READ_ROW_COUNT_SESSION | 1 | | NDB_API_EVENT_DATA_COUNT_INJECTOR | 0 | | NDB_API_EVENT_NONDATA_COUNT_INJECTOR | 0 | | NDB_API_EVENT_BYTES_COUNT_INJECTOR | 0 | | NDB_API_WAIT_EXEC_COMPLETE_COUNT_SLAVE | 0 | | NDB_API_WAIT_SCAN_RESULT_COUNT_SLAVE | 0 | | NDB_API_WAIT_META_REQUEST_COUNT_SLAVE | 0 | | NDB_API_WAIT_NANOS_COUNT_SLAVE | 0 | | NDB_API_BYTES_SENT_COUNT_SLAVE | 0 | | NDB_API_BYTES_RECEIVED_COUNT_SLAVE | 0 | | NDB_API_TRANS_START_COUNT_SLAVE | 0 | | NDB_API_TRANS_COMMIT_COUNT_SLAVE | 0 | | NDB_API_TRANS_ABORT_COUNT_SLAVE | 0 | | NDB_API_TRANS_CLOSE_COUNT_SLAVE | 0 | | NDB_API_PK_OP_COUNT_SLAVE | 0 | | NDB_API_UK_OP_COUNT_SLAVE | 0 | | NDB_API_TABLE_SCAN_COUNT_SLAVE | 0 | | NDB_API_RANGE_SCAN_COUNT_SLAVE | 0 | | NDB_API_PRUNED_SCAN_COUNT_SLAVE | 0 | | NDB_API_SCAN_BATCH_COUNT_SLAVE | 0 | | NDB_API_READ_ROW_COUNT_SLAVE | 0 | | NDB_API_TRANS_LOCAL_READ_ROW_COUNT_SLAVE | 0 | | NDB_API_WAIT_EXEC_COMPLETE_COUNT | 4 | | NDB_API_WAIT_SCAN_RESULT_COUNT | 3 | | NDB_API_WAIT_META_REQUEST_COUNT | 28 | | NDB_API_WAIT_NANOS_COUNT | 53756398 | | NDB_API_BYTES_SENT_COUNT | 1060 | | NDB_API_BYTES_RECEIVED_COUNT | 9724 | | NDB_API_TRANS_START_COUNT | 3 | | NDB_API_TRANS_COMMIT_COUNT | 2 | | NDB_API_TRANS_ABORT_COUNT | 0 | | NDB_API_TRANS_CLOSE_COUNT | 3 | | NDB_API_PK_OP_COUNT | 2 | | NDB_API_UK_OP_COUNT | 0 | | NDB_API_TABLE_SCAN_COUNT | 1 | | NDB_API_RANGE_SCAN_COUNT | 0 | | NDB_API_PRUNED_SCAN_COUNT | 0 | | NDB_API_SCAN_BATCH_COUNT | 0 | | NDB_API_READ_ROW_COUNT | 2 | | NDB_API_TRANS_LOCAL_READ_ROW_COUNT | 2 | | NDB_API_EVENT_DATA_COUNT | 0 | | NDB_API_EVENT_NONDATA_COUNT | 0 | | NDB_API_EVENT_BYTES_COUNT | 0 | +--------------------------------------------+----------------+ 60 rows in set (0.00 sec)

Ndb オブジェクトは、それぞれに独自のカウンタを持っています。 NDB API アプリケーションは、最適化やモニタリングで使用するためにカウンタの値を読み取ることができます。 複数の Ndb オブジェクトを同時に使用するマルチスレッドクライアントの場合、特定の Ndb_cluster_connection に属するすべての Ndb オブジェクトからカウンタの合計ビューを取得することもできます。

4 セットのカウンタが表示されます。 1 セットは、現在のセッションにのみ適用されます。その他の 3 セットはグローバルです。 これは、mysql クライアントでは、これらの値をセッションとグローバルのどちらのステータス変数としても取得できることに関係ありません。 つまり、SHOW STATUSSESSION または GLOBAL キーワードを指定しても NDB API 統計ステータス変数について報告される値には影響せず、これらの各変数の値は、session_status または global_status テーブルの同等のカラムから取得されるかどうかにかかわらず同じです。

  • セッションカウンタ (セッションに固有)

    セッションカウンタは、現在のセッションで (のみ) 使用される Ndb オブジェクトに関連します。 このようなオブジェクトをほかの MySQL クライアントが使用しても、これらのカウンタは影響を受けません。

    標準の MySQL セッション変数との混同を最小限にするために、これらの NDB API セッションに対応する変数は、先頭に下線を付けた _session 変数と呼んでいます。

  • レプリカカウンタ (グローバル)

    このカウンタセットは、レプリカ SQL スレッドで使用される Ndb オブジェクト (存在する場合) に関連します。 この mysqld がレプリカとして機能しない場合、または NDB テーブルを使用しない場合、これらのカウントはすべて 0 になります。

    関連するステータス変数は、(先頭に下線を付けた) _slave 変数と呼んでいます。

  • インジェクタカウンタ (グローバル)

    インジェクタカウンタは、バイナリログインジェクタスレッドがクラスタイベントを待機するために使用する Ndb オブジェクトに関連します。 バイナリログを書き込まない場合でも、NDB Cluster に接続された mysqld プロセスは、スキーマの変更などの一部のイベントを引き続き待機します。

    NDB API インジェクタカウンタに対応するステータス変数は、(先頭に下線を付けた) _injector 変数と呼んでいます。

  • サーバー (グローバル) カウンタ (グローバル)

    このカウンタセットは、この mysqld によって現在使用されているすべての Ndb オブジェクトに関連します。 これには、すべての MySQL クライアントアプリケーション、レプリカ SQL スレッド (存在する場合)、バイナリログインジェクタおよび NDB ユーティリティスレッドが含まれます。

    これらのカウンタに対応するステータス変数は、グローバル変数または mysqld レベルの変数と呼んでいます。

(一般的なプリフィクス Ndb_api とともに) 変数名の部分文字列 sessionslave、または injector で追加でフィルタ処理すると、特定の変数セットの値を取得できます。 _session 変数の場合は、これを次に示すように実行できます。

Press CTRL+C to copy
mysql> SHOW STATUS LIKE 'ndb_api%session'; +--------------------------------------------+---------+ | Variable_name | Value | +--------------------------------------------+---------+ | Ndb_api_wait_exec_complete_count_session | 2 | | Ndb_api_wait_scan_result_count_session | 0 | | Ndb_api_wait_meta_request_count_session | 1 | | Ndb_api_wait_nanos_count_session | 8144375 | | Ndb_api_bytes_sent_count_session | 68 | | Ndb_api_bytes_received_count_session | 84 | | Ndb_api_trans_start_count_session | 1 | | Ndb_api_trans_commit_count_session | 1 | | Ndb_api_trans_abort_count_session | 0 | | Ndb_api_trans_close_count_session | 1 | | Ndb_api_pk_op_count_session | 1 | | Ndb_api_uk_op_count_session | 0 | | Ndb_api_table_scan_count_session | 0 | | Ndb_api_range_scan_count_session | 0 | | Ndb_api_pruned_scan_count_session | 0 | | Ndb_api_scan_batch_count_session | 0 | | Ndb_api_read_row_count_session | 1 | | Ndb_api_trans_local_read_row_count_session | 1 | +--------------------------------------------+---------+ 18 rows in set (0.50 sec)

NDB API mysqld レベルのステータス変数のリストを取得するには、次のように、ndb_api で始まり、_count で終わる変数名でフィルタ処理します。

Press CTRL+C to copy
mysql> SELECT * FROM performance_schema.session_status -> WHERE VARIABLE_NAME LIKE 'ndb_api%count'; +------------------------------------+----------------+ | VARIABLE_NAME | VARIABLE_VALUE | +------------------------------------+----------------+ | NDB_API_WAIT_EXEC_COMPLETE_COUNT | 4 | | NDB_API_WAIT_SCAN_RESULT_COUNT | 3 | | NDB_API_WAIT_META_REQUEST_COUNT | 28 | | NDB_API_WAIT_NANOS_COUNT | 53756398 | | NDB_API_BYTES_SENT_COUNT | 1060 | | NDB_API_BYTES_RECEIVED_COUNT | 9724 | | NDB_API_TRANS_START_COUNT | 3 | | NDB_API_TRANS_COMMIT_COUNT | 2 | | NDB_API_TRANS_ABORT_COUNT | 0 | | NDB_API_TRANS_CLOSE_COUNT | 3 | | NDB_API_PK_OP_COUNT | 2 | | NDB_API_UK_OP_COUNT | 0 | | NDB_API_TABLE_SCAN_COUNT | 1 | | NDB_API_RANGE_SCAN_COUNT | 0 | | NDB_API_PRUNED_SCAN_COUNT | 0 | | NDB_API_SCAN_BATCH_COUNT | 0 | | NDB_API_READ_ROW_COUNT | 2 | | NDB_API_TRANS_LOCAL_READ_ROW_COUNT | 2 | | NDB_API_EVENT_DATA_COUNT | 0 | | NDB_API_EVENT_NONDATA_COUNT | 0 | | NDB_API_EVENT_BYTES_COUNT | 0 | +------------------------------------+----------------+ 21 rows in set (0.09 sec)

4 セットすべてのステータス変数に、すべてのカウンタが反映されるとはかぎりません。 イベントカウンタ DataEventsRecvdCountNondataEventsRecvdCount、および EventBytesRecvdCount の場合は、_injectormysqld レベルの NDB API ステータス変数のみを使用できます。

Press CTRL+C to copy
mysql> SHOW STATUS LIKE 'ndb_api%event%'; +--------------------------------------+-------+ | Variable_name | Value | +--------------------------------------+-------+ | Ndb_api_event_data_count_injector | 0 | | Ndb_api_event_nondata_count_injector | 0 | | Ndb_api_event_bytes_count_injector | 0 | | Ndb_api_event_data_count | 0 | | Ndb_api_event_nondata_count | 0 | | Ndb_api_event_bytes_count | 0 | +--------------------------------------+-------+ 6 rows in set (0.00 sec)

次に示すように、その他の NDB API カウンタには、_injector ステータス変数が実装されていません。

Press CTRL+C to copy
mysql> SHOW STATUS LIKE 'ndb_api%injector%'; +--------------------------------------+-------+ | Variable_name | Value | +--------------------------------------+-------+ | Ndb_api_event_data_count_injector | 0 | | Ndb_api_event_nondata_count_injector | 0 | | Ndb_api_event_bytes_count_injector | 0 | +--------------------------------------+-------+ 3 rows in set (0.00 sec)

ステータス変数の名前は、対応するカウンタの名前に簡単に関連付けることができます。 次の表に、各 NDB API 統計カウンタを、説明およびこのカウンタに対応する MySQL サーバーステータス変数の名前とともに一覧表示しています。

表 23.65 NDB API 統計カウンタ

カウンタ名 説明 ステータス変数 (統計タイプ別):
  • セッション

  • スレーブ (レプリカ)

  • インジェクタ

  • サーバー

WaitExecCompleteCount 操作の実行が完了するまで待機する間にスレッドがブロックされた回数。 すべての execute() 呼び出しと、クライアントから見えない BLOB および自動インクリメント操作の暗黙的な実行が含まれます。
  • Ndb_api_wait_exec_complete_count_session

  • Ndb_api_wait_exec_complete_count_slave

  • [none]

  • Ndb_api_wait_exec_complete_count

WaitScanResultCount 追加の結果やスキャンが閉じるまで待機するなど、スキャンベースの信号を待機する間にスレッドがブロックされた回数。
  • Ndb_api_wait_scan_result_count_session

  • Ndb_api_wait_scan_result_count_slave

  • [none]

  • Ndb_api_wait_scan_result_count

WaitMetaRequestCount メタベースの信号を待機する間にスレッドがブロックされた回数。これは、DDL 操作またはエポックが開始される (または終了する) まで待機しているときに発生する可能性があります。
  • Ndb_api_wait_meta_request_count_session

  • Ndb_api_wait_meta_request_count_slave

  • [none]

  • Ndb_api_wait_meta_request_count

WaitNanosCount データノードからの何らかのタイプの信号の待機にかかった合計時間 (ナノ秒)。
  • Ndb_api_wait_nanos_count_session

  • Ndb_api_wait_nanos_count_slave

  • [none]

  • Ndb_api_wait_nanos_count

BytesSentCount データノードに送信されたデータ量 (バイト単位)。
  • Ndb_api_bytes_sent_count_session

  • Ndb_api_bytes_sent_count_slave

  • [none]

  • Ndb_api_bytes_sent_count

BytesRecvdCount データノードから受信されたデータ量 (バイト単位)。
  • Ndb_api_bytes_received_count_session

  • Ndb_api_bytes_received_count_slave

  • [none]

  • Ndb_api_bytes_received_count

TransStartCount 開始されたトランザクションの数。
  • Ndb_api_trans_start_count_session

  • Ndb_api_trans_start_count_slave

  • [none]

  • Ndb_api_trans_start_count

TransCommitCount コミットされたトランザクションの数。
  • Ndb_api_trans_commit_count_session

  • Ndb_api_trans_commit_count_slave

  • [none]

  • Ndb_api_trans_commit_count

TransAbortCount 中止されたトランザクションの数。
  • Ndb_api_trans_abort_count_session

  • Ndb_api_trans_abort_count_slave

  • [none]

  • Ndb_api_trans_abort_count

TransCloseCount 中止されたトランザクションの数。 (この値は、TransCommitCountTransAbortCount との合計より大きい場合があります。)
  • Ndb_api_trans_close_count_session

  • Ndb_api_trans_close_count_slave

  • [none]

  • Ndb_api_trans_close_count

PkOpCount 主キーに基づいた操作または主キーを使用した操作の数。 このカウントには、BLOB 部分テーブル操作、暗黙的なロック解除操作、自動インクリメント操作、および通常 MySQL クライアントから見える主キー操作が含まれます。
  • Ndb_api_pk_op_count_session

  • Ndb_api_pk_op_count_slave

  • [none]

  • Ndb_api_pk_op_count

UkOpCount 一意のキーに基づいた操作または一意のキーを使用した操作の数。
  • Ndb_api_uk_op_count_session

  • Ndb_api_uk_op_count_slave

  • [none]

  • Ndb_api_uk_op_count

TableScanCount 開始されたテーブルスキャンの数。 これには、内部テーブルのスキャンが含まれます。
  • Ndb_api_table_scan_count_session

  • Ndb_api_table_scan_count_slave

  • [none]

  • Ndb_api_table_scan_count

RangeScanCount 開始された範囲スキャンの数。
  • Ndb_api_range_scan_count_session

  • Ndb_api_range_scan_count_slave

  • [none]

  • Ndb_api_range_scan_count

PrunedScanCount 単一パーティションにプルーニングされたスキャンの数。
  • Ndb_api_pruned_scan_count_session

  • Ndb_api_pruned_scan_count_slave

  • [none]

  • Ndb_api_pruned_scan_count

ScanBatchCount 受信された行のバッチの数。 (このコンテキストで、バッチとは単一フラグメントからのスキャン結果のセットです。)
  • Ndb_api_scan_batch_count_session

  • Ndb_api_scan_batch_count_slave

  • [none]

  • Ndb_api_scan_batch_count

ReadRowCount 読み取られた行の合計数。 主キー、一意のキー、またはスキャン操作を使用して読み取られた行が含まれます。
  • Ndb_api_read_row_count_session

  • Ndb_api_read_row_count_slave

  • [none]

  • Ndb_api_read_row_count

TransLocalReadRowCount トランザクションが実行された同じデータノードから読み取られた行数。
  • Ndb_api_trans_local_read_row_count_session

  • Ndb_api_trans_local_read_row_count_slave

  • [none]

  • Ndb_api_trans_local_read_row_count

DataEventsRecvdCount 受信された行変更イベントの数。
  • [none]

  • [none]

  • Ndb_api_event_data_count_injector

  • Ndb_api_event_data_count

NondataEventsRecvdCount 受信された行変更イベント以外のイベントの数。
  • [none]

  • [none]

  • Ndb_api_event_nondata_count_injector

  • Ndb_api_event_nondata_count

EventBytesRecvdCount 受信されたイベントのバイト数。
  • [none]

  • [none]

  • Ndb_api_event_bytes_count_injector

  • Ndb_api_event_bytes_count

カウンタ名 説明 ステータス変数 (統計タイプ別):
  • セッション

  • スレーブ (レプリカ)

  • インジェクタ

  • サーバー


コミットされたトランザクションのすべてのカウント、つまり TransCommitCount カウンタのステータス変数を確認するには、次のように、SHOW STATUS の結果を部分文字列 trans_commit_count でフィルタ処理できます。

Press CTRL+C to copy
mysql> SHOW STATUS LIKE '%trans_commit_count%'; +------------------------------------+-------+ | Variable_name | Value | +------------------------------------+-------+ | Ndb_api_trans_commit_count_session | 1 | | Ndb_api_trans_commit_count_slave | 0 | | Ndb_api_trans_commit_count | 2 | +------------------------------------+-------+ 3 rows in set (0.00 sec)

ここから、現在の mysql クライアントセッションで 1 つのトランザクションがコミットされ、この mysqld で、それが最後に再起動されてから、2 つのトランザクションがコミットされたことを判断できます。

ステートメントを実行した直前と直後で、対応する _session ステータス変数の値を比較すると、特定の SQL ステートメントによって、さまざまな NDB API カウンタがどのように増分されているかを確認できます。 この例では、SHOW STATUS から初期値を取得したあとに、test データベースに、単一のカラムを持つ t という名前の NDB テーブルを作成します。

Press CTRL+C to copy
mysql> SHOW STATUS LIKE 'ndb_api%session%'; +--------------------------------------------+--------+ | Variable_name | Value | +--------------------------------------------+--------+ | Ndb_api_wait_exec_complete_count_session | 2 | | Ndb_api_wait_scan_result_count_session | 0 | | Ndb_api_wait_meta_request_count_session | 3 | | Ndb_api_wait_nanos_count_session | 820705 | | Ndb_api_bytes_sent_count_session | 132 | | Ndb_api_bytes_received_count_session | 372 | | Ndb_api_trans_start_count_session | 1 | | Ndb_api_trans_commit_count_session | 1 | | Ndb_api_trans_abort_count_session | 0 | | Ndb_api_trans_close_count_session | 1 | | Ndb_api_pk_op_count_session | 1 | | Ndb_api_uk_op_count_session | 0 | | Ndb_api_table_scan_count_session | 0 | | Ndb_api_range_scan_count_session | 0 | | Ndb_api_pruned_scan_count_session | 0 | | Ndb_api_scan_batch_count_session | 0 | | Ndb_api_read_row_count_session | 1 | | Ndb_api_trans_local_read_row_count_session | 1 | +--------------------------------------------+--------+ 18 rows in set (0.00 sec) mysql> USE test; Database changed mysql> CREATE TABLE t (c INT) ENGINE NDBCLUSTER; Query OK, 0 rows affected (0.85 sec)

この時点で、次に示す (出力で変更された行を強調表示しています) ように、新しい SHOW STATUS ステートメントを実行し、変更を確認できます。

Press CTRL+C to copy
mysql> SHOW STATUS LIKE 'ndb_api%session%'; +--------------------------------------------+-----------+ | Variable_name | Value | +--------------------------------------------+-----------+ | Ndb_api_wait_exec_complete_count_session | 8 | | Ndb_api_wait_scan_result_count_session | 0 | | Ndb_api_wait_meta_request_count_session | 17 | | Ndb_api_wait_nanos_count_session | 706871709 | | Ndb_api_bytes_sent_count_session | 2376 | | Ndb_api_bytes_received_count_session | 3844 | | Ndb_api_trans_start_count_session | 4 | | Ndb_api_trans_commit_count_session | 4 | | Ndb_api_trans_abort_count_session | 0 | | Ndb_api_trans_close_count_session | 4 | | Ndb_api_pk_op_count_session | 6 | | Ndb_api_uk_op_count_session | 0 | | Ndb_api_table_scan_count_session | 0 | | Ndb_api_range_scan_count_session | 0 | | Ndb_api_pruned_scan_count_session | 0 | | Ndb_api_scan_batch_count_session | 0 | | Ndb_api_read_row_count_session | 2 | | Ndb_api_trans_local_read_row_count_session | 1 | +--------------------------------------------+-----------+ 18 rows in set (0.00 sec)

同様に、t に行を挿入することで発生した NDB API 統計カウンタの変更も確認できます。次に示すように、行を挿入してから、前の例で使用したものと同じ SHOW STATUS ステートメントを実行します。

Press CTRL+C to copy
mysql> INSERT INTO t VALUES (100); Query OK, 1 row affected (0.00 sec) mysql> SHOW STATUS LIKE 'ndb_api%session%'; +--------------------------------------------+-----------+ | Variable_name | Value | +--------------------------------------------+-----------+ | Ndb_api_wait_exec_complete_count_session | 11 | | Ndb_api_wait_scan_result_count_session | 6 | | Ndb_api_wait_meta_request_count_session | 20 | | Ndb_api_wait_nanos_count_session | 707370418 | | Ndb_api_bytes_sent_count_session | 2724 | | Ndb_api_bytes_received_count_session | 4116 | | Ndb_api_trans_start_count_session | 7 | | Ndb_api_trans_commit_count_session | 6 | | Ndb_api_trans_abort_count_session | 0 | | Ndb_api_trans_close_count_session | 7 | | Ndb_api_pk_op_count_session | 8 | | Ndb_api_uk_op_count_session | 0 | | Ndb_api_table_scan_count_session | 1 | | Ndb_api_range_scan_count_session | 0 | | Ndb_api_pruned_scan_count_session | 0 | | Ndb_api_scan_batch_count_session | 0 | | Ndb_api_read_row_count_session | 3 | | Ndb_api_trans_local_read_row_count_session | 2 | +--------------------------------------------+-----------+ 18 rows in set (0.00 sec)

これらの結果から、いくつかのことを観察できます。

  • 明示的な主キーなしで t を作成しましたが、その際に 5 つの主キー操作が実行されました (Ndb_api_pk_op_count_sessionの値の差、つまり 6 から 1 を引く)。 これは、NDB ストレージエンジンを使用しているすべてのテーブルの機能である非表示の主キーの作成を反映しています。

  • Ndb_api_wait_nanos_count_session の連続した値を比較すると、CREATE TABLE ステートメントを実装している NDB API 操作が、INSERT によって実行された操作 (707370418 - 706871709 = 498709 ナノ秒、つまり約 0.0005 秒) よりも大幅に長い時間 (706871709 - 820705 = 706051004 ナノ秒、つまり約 0.7 秒)、データノードからの応答を待機したことを確認できます。 mysql クライアントでこれらのステートメントについてレポートされた実行時間は、これらの数値に大まかに関連しています。

    十分な (ナノ秒) 時間解決がないプラットフォームでは、非常に迅速に実行される SQL ステートメントが Ndb_api_wait_nanos_count_sessionNdb_api_wait_nanos_count_slave、または Ndb_api_wait_nanos_count の値に表示されないことがあるため、WaitNanosCount NDB API カウンタの値の小さな変更がある場合があります。

  • Ndb_api_read_row_count_sessionNdb_api_trans_local_read_row_count_session の値が増加したことを反映して、INSERT ステートメントによって ReadRowCountTransLocalReadRowCount の両方の NDB API 統計カウンタが増分されています。