21.5.14.29 ndbinfo Operations_per_fragmenttable

operations_per_fragmenttable 提供有关在单个片段和片段副本上执行的操作的信息,以及有关这些操作的某些结果的信息。

operations_per_fragmenttable 包含以下列:

  • fq_name

该片段的名称

  • parent_fq_name

该片段的父级名称

  • type

对象类型;请参阅 Literals 以获取可能的值

  • table_id

该 table 的 tableID

  • node_id

该节点的节点 ID

  • block_instance

内核块实例 ID

  • fragment_num

片段 ID(编号)

  • tot_key_reads

此片段副本的键读取总数

  • tot_key_inserts

此片段副本的密钥插入总数

  • tot_key_updates

此片段副本的密钥更新总数

  • tot_key_writes

此片段副本的键写入总数

  • tot_key_deletes

此片段副本的键删除总数

  • tot_key_refs

拒绝的关键操作次数

  • tot_key_attrinfo_bytes

所有attrinfo个属性的总大小

  • tot_key_keyinfo_bytes

所有keyinfo个属性的总大小

  • tot_key_prog_bytes

attrinfo属性携带的所有已解释程序的总大小

  • tot_key_inst_exec

由解释程序执行的用于关键操作的指令总数

  • tot_key_bytes_returned

按键读取操作返回的所有数据和元数据的总大小

  • tot_frag_scans

在此片段副本上执行的扫描总数

  • tot_scan_rows_examined

扫描检查的总行数

  • tot_scan_rows_returned

返回给 Client 端的总行数

  • tot_scan_bytes_returned

返回给 Client 端的数据和元数据的总大小

  • tot_scan_prog_bytes

用于扫描操作的解释程序的总大小

  • tot_scan_bound_bytes

有序索引扫描中使用的所有边界的总大小

  • tot_scan_inst_exec

扫描执行的指令总数

  • tot_qd_frag_scans

此片段副本的扫描已排队的次数

  • conc_frag_scans

当前在此片段副本上活动的扫描数(不包括排队扫描)

  • conc_qd_frag_scans

当前排队 await 该片段副本的扫描数

  • tot_commits

提交给此片段副本的行更改总数

Notes

fq_name包含此片段副本所属的架构对象的标准名称。当前具有以下格式:

  • 基本 table:DbName/def/TblName

  • BLOB桌:DbName/def/NDB$BLOB_BaseTblId_ColNo

  • 有序索引:sys/def/BaseTblId/IndexName

  • 唯一索引:sys/def/BaseTblId/IndexName$unique

显示的唯一索引后缀$uniquemysqld添加;对于由其他 NDB APIClient 端应用程序创建的索引,此索引可能有所不同或不存在。

刚刚为完全限定对象名称显示的语法是一个内部接口,在将来的发行版中可能会更改。

考虑由以下 SQL 语句创建和修改的 tablet1

CREATE DATABASE mydb;

USE mydb;

CREATE TABLE t1 (
  a INT NOT NULL,
  b INT NOT NULL,
  t TEXT NOT NULL,
  PRIMARY KEY (b)
) ENGINE=ndbcluster;

CREATE UNIQUE INDEX ix1 ON t1(b) USING HASH;

如果为t1分配了 tableID 11,则会产生fq_name值,如下所示:

  • 基本 table:mydb/def/t1

  • BLOB桌:mydb/def/NDB$BLOB_11_2

  • 有序索引(主键):sys/def/11/PRIMARY

  • 唯一索引:sys/def/11/ix1$unique

对于索引或BLOBtable,parent_fq_name列包含相应基础 table 的fq_name。对于基本 table,此列始终为NULL

type列显示了用于此片段的架构对象类型,可以采用值System tableUser tableUnique hash indexOrdered index中的任何一个。 BLOBtable 显示为User table

table_id列的值在任何给定时间都是唯一的,但是如果相应的对象已删除,则可以重用。使用ndb_show_tablesUtil 可以看到相同的 ID。

block_instance列显示此片段副本所属的 LDM 实例。您可以使用它从threadblockstable 中获取有关特定线程的信息。第一个这样的实例始终编号为 0.

由于通常有两个副本,并且假设是这样,因此每个fragment_num值应在 table 中出现两次,分别在同一节点组的两个不同数据节点上。

由于NDB不会对有序索引使用单键访问,因此tot_key_readstot_key_insertstot_key_updatestot_key_writestot_key_deletes的计数不会因有序索引操作而增加。

Note

使用tot_key_writes时,请记住,如果键存在,则此上下文中的写操作将更新该行,否则将插入新行。 (此用法之一是在REPLACE SQL 语句的NDB实现中。)

tot_key_refs列显示 LDM 拒绝的键操作数。通常,这种拒绝是由于重复的键(插入),未找到键的错误(更新,删除和读取)或操作被解释的程序所拒绝,该程序被用作与键匹配的行的谓词。

tot_key_attrinfo_bytestot_key_keyinfo_bytes列计数的attrinfokeyinfo属性是用于启动 LDM 的键操作的LQHKEYREQsignal(请参见NDB 通信协议)的属性。 attrinfo通常包含 Tuples 字段值(插入和更新)或投影规范(用于读取)。 keyinfo包含在此架构对象中定位给定 Tuples 所需的主键或唯一键。

tot_frag_scans显示的值包括完整扫描(检查每一行)和子集扫描。永不扫描唯一索引和BLOBtable,因此,与其他与扫描相关的计数一样,此值的片段副本为 0.

tot_scan_rows_examined可能显示少于给定片段副本中的总行数,因为有序索引扫描可能会受到限制。此外,Client 端可以选择在检查所有可能匹配的行之前结束扫描。例如,当使用包含LIMITEXISTS子句的 SQL 语句时,会发生这种情况。 tot_scan_rows_returned始终小于或等于tot_scan_rows_examined

对于强制连接,tot_scan_bytes_returned包括返回到 NDB 内核中DBSPJ块的投影。

tot_qd_frag_scans可以受MaxParallelScansPerFragment数据节点配置参数的设置的影响,该参数限制可以在单个片段副本上同时执行的扫描数量。