Documentation Home
MySQL 5.6 リファレンスマニュアル
Download this Manual
PDF (US Ltr) - 26.8Mb
PDF (A4) - 26.9Mb
HTML Download (TGZ) - 7.1Mb
HTML Download (Zip) - 7.2Mb


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

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

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

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)

これらのステータス変数は、次に示すように、INFORMATION_SCHEMA データベースの SESSION_STATUS および GLOBAL_STATUS テーブルから使用することもできます。

mysql> SELECT * FROM INFORMATION_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 INFORMATION_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 STATUS を使用して SESSION または GLOBAL キーワードを指定しても、NDB API 統計のステータス変数にレポートされる値は影響を受けず、SESSION_STATUSGLOBAL_STATUS テーブルのどちらの同等のカラムから値を取得しているかに関係なく、これらの各変数の値は同じです。

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

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

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

  • スレーブカウンタ (グローバル)

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

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

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

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

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

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

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

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

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

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 で終わる変数名でフィルタ処理します。

mysql> SELECT * FROM INFORMATION_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 ステータス変数のみを使用できます。

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 ステータス変数が実装されていません。

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 サーバーステータス変数の名前とともに一覧表示しています。

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

  • スレーブ

  • インジェクタ

  • サーバー

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 でフィルタ処理できます。

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 テーブルを作成します。

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 ステートメントを実行し、変更を確認できます。

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 ステートメントを実行します。

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 ステートメントが非常に高速で実行されたために、WaitNanosCount NDB API カウンタの値の小さな変更が、Ndb_api_wait_nanos_count_sessionNdb_api_wait_nanos_count_slave、または Ndb_api_wait_nanos_count の値に表れないことがあります。

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