21.5.14.29 ndbinfo Operations_per_fragmenttable
operations_per_fragment
table 提供有关在单个片段和片段副本上执行的操作的信息,以及有关这些操作的某些结果的信息。
operations_per_fragment
table 包含以下列:
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
显示的唯一索引后缀$unique
由mysqld添加;对于由其他 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
对于索引或BLOB
table,parent_fq_name
列包含相应基础 table 的fq_name
。对于基本 table,此列始终为NULL
。
type
列显示了用于此片段的架构对象类型,可以采用值System table
,User table
,Unique hash index
或Ordered index
中的任何一个。 BLOB
table 显示为User table
。
table_id
列的值在任何给定时间都是唯一的,但是如果相应的对象已删除,则可以重用。使用ndb_show_tablesUtil 可以看到相同的 ID。
block_instance
列显示此片段副本所属的 LDM 实例。您可以使用它从threadblockstable 中获取有关特定线程的信息。第一个这样的实例始终编号为 0.
由于通常有两个副本,并且假设是这样,因此每个fragment_num
值应在 table 中出现两次,分别在同一节点组的两个不同数据节点上。
由于NDB
不会对有序索引使用单键访问,因此tot_key_reads
,tot_key_inserts
,tot_key_updates
,tot_key_writes
和tot_key_deletes
的计数不会因有序索引操作而增加。
Note
使用tot_key_writes
时,请记住,如果键存在,则此上下文中的写操作将更新该行,否则将插入新行。 (此用法之一是在REPLACE SQL 语句的NDB
实现中。)
tot_key_refs
列显示 LDM 拒绝的键操作数。通常,这种拒绝是由于重复的键(插入),未找到键的错误(更新,删除和读取)或操作被解释的程序所拒绝,该程序被用作与键匹配的行的谓词。
由tot_key_attrinfo_bytes
和tot_key_keyinfo_bytes
列计数的attrinfo
和keyinfo
属性是用于启动 LDM 的键操作的LQHKEYREQ
signal(请参见NDB 通信协议)的属性。 attrinfo
通常包含 Tuples 字段值(插入和更新)或投影规范(用于读取)。 keyinfo
包含在此架构对象中定位给定 Tuples 所需的主键或唯一键。
tot_frag_scans
显示的值包括完整扫描(检查每一行)和子集扫描。永不扫描唯一索引和BLOB
table,因此,与其他与扫描相关的计数一样,此值的片段副本为 0.
tot_scan_rows_examined
可能显示少于给定片段副本中的总行数,因为有序索引扫描可能会受到限制。此外,Client 端可以选择在检查所有可能匹配的行之前结束扫描。例如,当使用包含LIMIT
或EXISTS
子句的 SQL 语句时,会发生这种情况。 tot_scan_rows_returned
始终小于或等于tot_scan_rows_examined
。
对于强制连接,tot_scan_bytes_returned
包括返回到 NDB 内核中DBSPJ块的投影。
tot_qd_frag_scans
可以受MaxParallelScansPerFragment数据节点配置参数的设置的影响,该参数限制可以在单个片段副本上同时执行的扫描数量。