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
包含此分片副本所属的架构对象的完全限定名称。这当前具有以下格式
基表:
数据库名称
/def/表名称
BLOB
表:数据库名称
/def/NDB$BLOB_基表 ID
_列号
有序索引:
sys/def/
基表 ID
/索引名称
唯一索引:
sys/def/
基表 ID
/索引名称
$unique
唯一索引显示的 $unique
后缀由 mysqld 添加;对于由不同的 NDB API 客户端应用程序创建的索引,这可能会有所不同,或者不存在。
上面显示的完全限定对象名称语法是一个内部接口,在将来的版本中可能会发生变化。
考虑一个由以下 SQL 语句创建和修改的表 t1
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_name
列包含相应基表的 fq_name
。对于基表,此列始终为 NULL
。
type
列显示用于此分片的架构对象类型,它可以采用以下任意值:系统表
、用户表
、唯一哈希索引
或 有序索引
。将 BLOB
表显示为 用户表
。
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
时,您应该记住,在这种情况下,如果键存在,则写入操作会更新行,否则会插入新行。(其中一个用途是在 NDB
中实现 REPLACE
SQL 语句。)
tot_key_refs
列显示 LDM 拒绝的键操作数。通常,这种拒绝是由于重复键(插入)、找不到键 错误(更新、删除和读取),或者操作被用作与键匹配的行上的谓词的解释程序拒绝。
tot_key_attrinfo_bytes
和 tot_key_keyinfo_bytes
列统计的 attrinfo
和 keyinfo
属性是 LQHKEYREQ
信号(请参见 NDB 通信协议)的属性,用于由 LDM 启动键操作。attrinfo
通常包含元组字段值(插入和更新)或投影规范(用于读取);keyinfo
包含在此架构对象中定位给定元组所需的主键或唯一键。
tot_frag_scans
显示的值包括完整扫描(检查每一行)和子集扫描。永远不会扫描唯一索引和 BLOB
表,因此此值(如其他与扫描相关的计数)对于这些分片副本为 0。
tot_scan_rows_examined
显示的内容可能少于给定分片副本中的行总数,因为有序索引扫描可能会受到边界的限制。此外,客户端可以选择在检查完所有可能匹配的行之前结束扫描;例如,使用包含 LIMIT
或 EXISTS
子句的 SQL 语句时,就会发生这种情况。tot_scan_rows_returned
始终小于或等于 tot_scan_rows_examined
。
对于推送连接,tot_scan_bytes_returned
包括返回到 NDB 内核中 DBSPJ
块的投影。
tot_qd_frag_scans
可能会受到 MaxParallelScansPerFragment
数据节点配置参数设置的影响,该参数限制了可以在单个分片副本上并发执行的扫描数。