25.6.17.49 NDBinfo operations_per_fragment 表
operations_per_fragment 表提供了关于单个碎片和副本的操作信息,以及这些操作的一些结果。
operations_per_fragment 表包含以下列:
-
fq_name
该碎片的名称
-
parent_fq_name
该碎片的父碎片名称
-
type
对象类型;请参阅文本中的可能值
-
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 ix1 ON 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_名
列包含对应基本表的 fq_名
。对于基本表,这个列始终为 NULL
。
type
列显示用于该碎片的架构对象类型,可以取值为 System table
、User table
、Unique hash index
或 Ordered index
。 BLOB
表显示为 User table
。
table_id
列值在任何给定时间都是唯一的,但如果对应对象已被删除,可以重新使用该 ID。同一个 ID 可以使用 ndb_显示表 工具来查看。
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
时,需要注意的是,在这个上下文中,写操作会更新行,如果键存在,则插入新行。 (这在NDB
实现REPLACE
SQL 语句时有用。)
tot_key_refs
列显示了LDM拒绝的键操作数量。通常,这种拒绝是由于重复键(插入)、Key not found错误(更新、删除和读取)或操作被解释程序用作行匹配键的谓词所 reject 的。
attrinfo
和 keyinfo
属性由 tot_ key_attrinfo_bytes
和 tot_key_keyinfo_bytes
列计数,这些属性是 LQHKEYREQ
信号的属性(见NDB 通信协议)用于 LDM 初始化键操作。一个 attrinfo
通常包含插入和更新的元组字段值或读取投影规范; keyinfo
包含在该架构对象中找到给定元组所需的主键或唯一键。
tot_frag_scans
显示的值包括完整扫描(检查每个行)和子集扫描。唯一索引和 BLOB
表格从不被扫描,因此该值,如其他扫描相关计数,0 对于这些碎片副本。
tot_scan_rows_examined
可能显示给定碎片副本中的行数少于总数,因为有序索引扫描可以被 bounds 限制。此外,一客户端可能选择在使用 SQL 语句包含 LIMIT
或 EXISTS
子句时结束扫描;这发生在使用带有 LIMIT
或 EXISTS
子句的 SQL 语句时。 tot_scan_rows_returned
始终小于或等于 tot_scan_rows_examined
。
tot_scan_bytes_returned
包含在推送连接中,返回到 NDB 内核中的 DBSPJ
块的投影。
tot_qd_frag_scans
可能受到 MaxParallelScansPerFragment
数据节点配置参数的影响,该参数限制了单个副本碎片上可以同时执行的扫描数量。