ndb_index_stat — NDB索引统计实用程序
ndb_index_stat提供有关NDB
表索引的每个片段的统计信息。这包括高速缓存版本和寿命,每个分区的索引条目数以及按索引的内存消耗。
用法
要获取有关给定NDB
表的基本索引统计信息,请调用ndb_index_stat,如下所示,将表名作为第一个参数,并将包含该表的数据库的名称紧随其后使用--database
(-d
)选项指定:
ndb_index_stat table -d database
在此示例中,我们使用ndb_index_stat获取有关数据库NDB
中命名表mytable
的test
信息:
shell>ndb_index_stat -d test mytable table:City index:PRIMARY fragCount:2 sampleVersion:3 loadTime:1399585986 sampleCount:1994 keyBytes:7976 query cache: valid:1 sampleCount:1994 totalBytes:27916 times in ms: save: 7.133 sort: 1.974 sort per sample: 0.000 NDBT_ProgramExit: 0 - OK
sampleVersion
是从中获取统计数据的缓存的版本号。使用该选项运行ndb_index_stat--update
会导致sampleVersion增加。
loadTime
显示缓存的最新更新时间。这表示为自Unix纪元以来的秒数。
sampleCount
是每个分区中找到的索引条目的数量。您可以通过将其乘以片段数(显示为fragCount
)来估算条目总数。
sampleCount
可以与SHOW INDEX
或的基数进行比较INFORMATION_SCHEMA.STATISTICS
,尽管后两者提供了整个表的视图,而ndb_index_stat提供了每个片段的平均值。
keyBytes
是索引使用的字节数。在此示例中,主键是一个整数,每个索引需要四个字节,因此keyBytes
可以在这种情况下进行计算,如下所示:
keyBytes = sampleCount * (4 bytes per index) = 1994 * 4 = 7976
也可以从中使用相应的列定义来获取此信息INFORMATION_SCHEMA.COLUMNS
(这需要MySQL Server和MySQL客户端应用程序)。
totalBytes
是表上所有索引消耗的总内存,以字节为单位。
前面示例中显示的时间特定于ndb_index_stat的每次调用。
该--verbose
选项提供了一些其他输出,如下所示:
shell>ndb_index_stat -d test mytable --verbose random seed 1337010518 connected loop 1 of 1 table:mytable index:PRIMARY fragCount:4 sampleVersion:2 loadTime:1336751773 sampleCount:0 keyBytes:0 read stats query cache created query cache: valid:1 sampleCount:0 totalBytes:0 times in ms: save: 20.766 sort: 0.001 disconnected NDBT_ProgramExit: 0 - OK shell>
如果程序的唯一输出是NDBT_ProgramExit: 0 - OK
,则可能表明尚无统计信息。要强制创建(或更新它们,如果它们已经存在),请使用该--update
选项调用ndb_index_stat,或ANALYZE TABLE
在mysql客户端的表上执行。
选件
下表包含特定于NDB群集ndb_index_stat实用程序的选项。下表后列出了其他说明。有关大多数NDB群集程序(包括ndb_index_stat)通用的选项,请参见“ NDB群集程序的通用选项— NDB群集程序的通用选项”。
ndb_index_stat程序的命令行选项
格式 | 描述 | 添加,不建议使用或删除 |
---|---|---|
| 包含表的数据库的名称 | (在所有基于MySQL 8.0的版本中受支持) |
| 删除给定表的索引统计信息,停止任何先前配置的自动更新 | (在所有基于MySQL 8.0的版本中受支持) |
| 更新给定表的索引统计信息,重新启动以前配置的任何自动更新 | (在所有基于MySQL 8.0的版本中受支持) |
| 打印查询缓存 | (在所有基于MySQL 8.0的版本中受支持) |
| 在第一个键attr上执行许多随机范围查询(必须为int unsigned) | (在所有基于MySQL 8.0的版本中受支持) |
| 删除NDB内核中的所有统计信息表和事件(所有统计信息都会丢失) | (在所有基于MySQL 8.0的版本中受支持) |
| 如果没有统计表和事件,请在NDB内核中创建所有统计表和事件 | (在所有基于MySQL 8.0的版本中受支持) |
| 在NDB内核中创建尚不存在的任何统计表和事件 | (在所有基于MySQL 8.0的版本中受支持) |
| 创建NDB内核中不存在的任何统计信息表或事件。删除任何无效的 | (在所有基于MySQL 8.0的版本中受支持) |
| 验证NDB系统索引统计信息和事件表是否存在 | (在所有基于MySQL 8.0的版本中受支持) |
| 不要将sys-*选项应用于表 | (在所有基于MySQL 8.0的版本中受支持) |
| 不要将sys-*选项应用于事件 | (在所有基于MySQL 8.0的版本中受支持) |
| 打开详细输出 | (在所有基于MySQL 8.0的版本中受支持) |
| 设置执行给定命令的次数。默认为0 | (在所有基于MySQL 8.0的版本中受支持) |
ndb_index_stat统计信息选项。以下选项用于生成索引统计信息。他们使用给定的表和数据库。它们不能与系统选项混合使用(请参阅 ndb_index_stat系统选项)。
--database=name
,-d name
属性 值 命令行格式 --database=name 类型 string 默认值 [none] 最低值 最大值 包含要查询的表的数据库的名称。
--delete
属性 值 命令行格式 --delete 类型 布尔型 默认值 false 最低值 最大值 删除给定表的索引统计信息,停止先前配置的任何自动更新。
--update
属性 值 命令行格式 --update 类型 布尔型 默认值 false 最低值 最大值 更新给定表的索引统计信息,然后重新启动以前配置的所有自动更新。
--dump
属性 值 命令行格式 --dump 类型 布尔型 默认值 false 最低值 最大值 转储查询缓存的内容。
--query=#
属性 值 命令行格式 --query=# 类型 数字 默认值 0 最低值 0 最大值 MAX_INT 对第一个键属性执行随机范围查询(必须为int unsigned)。
ndb_index_stat系统选项。以下选项用于生成和更新NDB内核中的统计信息表。这些选项都不能与统计信息选项混合使用(请参阅 ndb_index_stat statistics options)。
--sys-drop
属性 值 命令行格式 --sys-drop 类型 布尔型 默认值 false 最低值 最大值 在NDB内核中删除所有统计信息表和事件。这将导致所有统计信息丢失。
--sys-create
属性 值 命令行格式 --sys-create 类型 布尔型 默认值 false 最低值 最大值 在NDB内核中创建所有统计信息表和事件。仅当以前不存在它们时,此方法才有效。
sys-create-if-not-exist
属性 值 命令行格式 --sys-create-if-not-exist 类型 布尔型 默认值 false 最低值 最大值 创建调用程序时尚不存在的任何NDB系统统计表或事件(或两者)。
--sys-create-if-not-valid
属性 值 命令行格式 --sys-create-if-not-valid 类型 布尔型 默认值 false 最低值 最大值 在删除任何无效的NDB系统统计信息表或事件后,请创建它们。
--sys-check
属性 值 命令行格式 --sys-check 类型 布尔型 默认值 false 最低值 最大值 验证NDB内核中是否存在所有必需的系统统计信息表和事件。
--sys-skip-tables
属性 值 命令行格式 --sys-skip-tables 类型 布尔型 默认值 false 最低值 最大值 不要将任何
--sys-*
选项应用于任何统计信息表。--sys-skip-events
属性 值 命令行格式 --sys-skip-events 类型 布尔型 默认值 false 最低值 最大值 不要
--sys-*
对任何事件应用任何选项。--verbose
属性 值 命令行格式 --verbose 类型 布尔型 默认值 false 最低值 最大值 打开详细输出。
--loops=#
属性 值 命令行格式 --loops=# 类型 数字 默认值 0 最低值 0 最大值 MAX_INT 重复命令此次数(用于测试)。