ndbinfo operations_per_fragment表
该operations_per_fragment
表提供有关在单个片段和片段副本上执行的操作的信息,以及有关这些操作的某些结果的信息。
下表提供有关表中各列的信息operations_per_fragment
。该表为每一列显示名称,数据类型和简要说明。可以在表格后面的注释中找到其他信息。
Operations_per_fragment表的列
栏名 | 类型 | 描述 |
---|---|---|
fq_name | string | 该片段的名称 |
parent_fq_name | string | 该片段的父级名称 |
type | string | 对象类型;请参阅文字以获取可能的值 |
table_id | 整数 | 该表的表ID |
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 | 整数 | 返回给客户端的总行数 |
tot_scan_bytes_returned | 整数 | 返回给客户端的数据和元数据的总大小 |
tot_scan_prog_bytes | 整数 | 用于扫描操作的解释程序的总大小 |
tot_scan_bound_bytes | 整数 | 有序索引扫描中使用的所有边界的总大小 |
tot_scan_inst_exec | 整数 | 扫描执行的指令总数 |
tot_qd_frag_scans | 整数 | 此片段副本的扫描已排队的次数 |
conc_frag_scans | 整数 | 当前在此片段副本上活动的扫描数(不包括排队扫描) |
conc_qd_frag_scans | 整数 | 当前排队等待该片段副本的扫描数 |
tot_commits | 整数 | 提交给此片段副本的行更改总数 |
在fq_name
包含此片段副本所属的架构对象的全名。当前具有以下格式:
- 基本表:-
DbName/def/TblName
BLOB
表格:-DbName/def/NDB$BLOB_BaseTblId_ColNo
- 有序索引:-
sys/def/BaseTblId/IndexName
- 唯一索引:-
sys/def/BaseTblId/IndexName$unique
$unique
唯一索引的后缀由mysqld添加;对于由其他NDB API客户端应用程序创建的索引,此索引可能有所不同或不存在。
刚刚显示的用于完全限定对象名称的语法是一个内部接口,在将来的版本中可能会更改。
考虑t1
由以下SQL语句创建和修改的表:
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 ix1ON t1(b)USING HASH ;
如果t1
为表ID分配了11,则会产生以下fq_name
所示的值:
- 基本表:
mydb/def/t1
BLOB
表:mydb/def/NDB$BLOB_11_2
- 有序索引(主键):
sys/def/11/PRIMARY
- 唯一索引:
sys/def/11/ix1$unique
对于索引或BLOB
表,该parent_fq_name
列包含fq_name
相应基表的。对于基本表,此列始终为NULL
。
的type
列显示用于该片段的架构对象类型,它可以采取的值的任何一个System table
,User table
,Unique hash index
,或Ordered index
。BLOB
表格显示为User table
。
该table_id
列的值是在任何给定时间唯一的,但如果相应的对象已被删除可重复使用。使用ndb_show_tables实用程序可以看到相同的ID 。
该block_instance
列显示此片段副本所属的LDM实例。您可以使用它从threadblocks
表中获取有关特定线程的信息。第一个这样的实例始终编号为0。
由于通常有两个副本,并且假设是这样,因此每个fragment_num
值应在表中出现两次,分别在同一节点组的两个不同数据节点上。
由于NDB
不使用有序索引单键访问,计数tot_key_reads
,tot_key_inserts
,tot_key_updates
,tot_key_writes
,和tot_key_deletes
没有被有序索引操作递增。
注意使用时
tot_key_writes
,应记住,如果键存在,则此上下文中的写操作将更新该行,否则将插入新行。(此用法之一是在SQL语句的NDB
实现中REPLACE
。)
该tot_key_refs
列显示LDM拒绝的关键操作数。通常,这种拒绝是由于重复的键(插入),未找到键的错误(更新,删除和读取),或者该操作被用作与该键匹配的行上的谓词的解释程序拒绝了。
的attrinfo
和keyinfo
属性由计数tot_key_attrinfo_bytes
和tot_key_keyinfo_bytes
列是一个属性LQHKEYREQ
信号(见的NDB通信协议所使用的LDM启动键操作)。一个attrinfo
典型地含有元组字段值(插入和更新)或投影规格(读取);keyinfo
包含在此架构对象中定位给定元组所需的主键或唯一键。
显示的值tot_frag_scans
包括完整扫描(检查每一行)和子集扫描。BLOB
永不扫描唯一索引和表,因此,与其他与扫描相关的计数一样,这些索引的片段副本的此值是0。
tot_scan_rows_examined
由于有序索引扫描可能会受到范围的限制,因此显示的行数可能少于给定片段副本中的行总数。此外,客户端可以选择在检查所有可能匹配的行之前结束扫描。例如,当使用包含LIMIT
or EXISTS
子句的SQL语句时,会发生这种情况。tot_scan_rows_returned
始终小于或等于tot_scan_rows_examined
。
tot_scan_bytes_returned
如果是推入式联接,则包括在DBSPJ
NDB内核中返回到该块的投影。
tot_qd_frag_scans
可以通过设置MaxParallelScansPerFragment
数据节点配置参数来实现,该参数限制了可以在单个片段副本上同时执行的扫描数量。