#### 23.6.14.48 ndbinfo 操作\_每\_片段表 [](<>) 这`operation_per_fragment`表提供有关对单个片段和片段副本执行的操作的信息,以及这些操作的一些结果。 这`operation_per_fragment`表包含以下列: - `fq_name` 此片段的名称 - `parent_fq_name` 此片段的父级名称 - `类型` 对象类型;请参阅文本以获取可能的值 - `table_id` 此表的表 ID - `node_id` 此节点的节点 ID - `块实例` 内核块实例 ID - `片段编号` 片段 ID(编号) - `tot_key_reads` 此片段副本的键读取总数 - `tot_key_inserts` 此片段副本的键插入总数 - `tot_key_updates` 此片段副本的密钥更新总数 - `tot_key_writes` 此片段副本的密钥写入总数 - `tot_key_deletes` 此片段副本的键删除总数 - `tot_key_refs` 拒绝的关键操作数 - `tot_key_attrinfo_bytes` 所有的总大小`属性信息`属性 - `tot_key_keyinfo_bytes` 所有的总大小`关键信息`属性 - `tot_key_prog_bytes` 携带的所有解释程序的总大小`属性信息`属性 - `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` 当前为此片段副本排队的扫描数 - 总\_提交 提交到此片段副本的行更改总数 ##### 笔记 这`fq_name`包含此片段副本所属的模式对象的完全限定名称。目前有以下格式: - 基表:`*`数据库名称`*/定义/*`表名`*` - `斑点`桌子:`*`数据库名称`*/def/NDB$BLOB_*`BaseTblId`*_*`编号`*` - 有序索引:`系统/定义/*`BaseTblId`*/*`索引名称`*` - 唯一索引:`系统/定义/*`BaseTblId`*/*`索引名称`*$唯一` 这`$独特的`为唯一索引显示的后缀由[**mysqld**](mysqld.html);对于由不同 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` - `斑点`桌子:`mydb/def/NDB$BLOB_11_2` - 有序索引(主键):`sys/def/11/PRIMARY` - 唯一索引:`sys/def/11/ix1$unique` 对于索引或`斑点`表`parent_fq_name`列包含`fq_name`对应的基表。对于基表,此列始终`空值`. 这`类型`列显示了用于此片段的架构对象类型,它可以采用任何一个值`系统表`,`用户表`,`唯一哈希索引`, 要么`有序索引`.`斑点`表格显示为`用户表`. 这`table_id`列值在任何给定时间都是唯一的,但如果相应的对象已被删除,则可以重用。相同的 ID 可以使用[**数据库\_显示\_表**](mysql-cluster-programs-ndb-show-tables.html)效用。 这`块实例`列显示该片段副本属于哪个 LDM 实例。您可以使用它从[`线程块`](mysql-cluster-ndbinfo-threadblocks.html)桌子。第一个这样的实例总是编号为 0。 由于通常有两个片段副本,并且假设是这样,每个`片段编号`value 应该在表中出现两次,出现在来自同一节点组的两个不同数据节点上。 自从`新开发银行`对有序索引不使用单键访问,计数为`tot_key_reads`,`tot_key_inserts`,`tot_key_updates`,`tot_key_writes`, 和`tot_key_deletes`不会由有序索引操作递增。 笔记 使用时`tot_key_writes`,您应该记住,如果键存在,则此上下文中的写入操作会更新行,否则插入新行。(其中一种用途是`新开发银行`的实施[`代替`](replace.html)SQL 语句。) 这`tot_key_refs`列显示 LDM 拒绝的键操作数。通常,这样的拒绝是由于重复的键(插入)、未找到键的错误(更新、删除和读取),或者操作被用作匹配键的行上的谓词的解释程序拒绝。 这`属性信息`和`关键信息`统计的属性`tot_key_attrinfo_bytes`和`tot_key_keyinfo_bytes`列是一个属性`LQHKEYREQ`信号(见[NDB 通信协议](https://dev.mysql.com/doc/ndb-internals/en/ndb-internals-ndb-protocol.html)) 用于启动 LDM 的键操作。一个`属性信息`通常包含元组字段值(插入和更新)或投影规范(用于读取);`关键信息`包含在此模式对象中定位给定元组所需的主键或唯一键。 显示的值`tot_frag_scans`包括完整扫描(检查每一行)和子集扫描。唯一索引和`斑点`表永远不会被扫描,因此与其他与扫描相关的计数一样,对于这些表的片段副本,此值为 0。 `tot_scan_rows_examined`可能显示的行数少于给定片段副本中的总行数,因为有序索引扫描可能受边界限制。此外,客户端可以选择在检查所有可能匹配的行之前结束扫描;当使用包含`限制`要么`存在`条款,例如。`tot_scan_rows_returned`总是小于或等于`tot_scan_rows_examined`. `tot_scan_bytes_returned`在推送连接的情况下,包括返回到[`DBSPJ`](https://dev.mysql.com/doc/ndb-internals/en/ndb-internals-kernel-blocks-dbspj.html)NDB内核中的块。 `tot_qd_frag_scans`可以通过设置的影响[`MaxParallelScansPerFragment`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-maxparallelscansperfragment)数据节点配置参数,它限制可以在单个片段副本上同时执行的扫描次数。