21.4.15 ndb_index_stat — NDB 索引统计 Util

ndb_index_stat提供有关NDBtable 上索引的每个片段的统计信息。这包括高速缓存版本和寿命,每个分区的索引条目数以及按索引的内存消耗。

Usage

要获取有关给定NDBtable 的基本索引统计信息,请调用ndb_index_stat,如此处所示,使用--database(-d)选项,将 table 名作为第一个参数,并将包含该 table 的数据库的名称紧随其后指定:

ndb_index_stat table -d database

在此示例中,我们使用ndb_index_stat获取有关test数据库中名为mytableNDBtable 的信息:

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是从中获取统计数据的缓存的版本号。使用--update选项运行ndb_index_stat会导致 sampleVersion 增加。

loadTime显示上次更新缓存的时间。这 table 示为自 Unix 纪元以来的秒数。

sampleCount是每个分区中找到的索引条目数。您可以通过将其乘以片段数(显示为fragCount)来估算条目总数。

可以将sampleCount与基数SHOW INDEXINFORMATION_SCHEMA.STATISTICS进行比较,尽管后两者提供了整个 table 格的视图,而ndb_index_stat提供了每个片段的平均值。

keyBytes是索引使用的字节数。在此示例中,主键是一个整数,每个索引需要四个字节,因此在这种情况下可以计算keyBytes,如下所示:

keyBytes = sampleCount * (4 bytes per index) = 1994 * 4 = 7976

也可以使用来自INFORMATION_SCHEMA.COLUMNS的相应列定义来获取此信息(这需要 MySQL Server 和 MySQLClient 端应用程序)。

totalBytes是 table 上所有索引消耗的总内存,以字节为单位。

前面示例中显示的时间特定于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,则可能 table 明尚无统计信息。要强制创建(或更新它们,如果它们已经存在),请使用--update选项调用ndb_index_stat,或在mysqlClient 端的 table 上执行ANALYZE TABLE

Options

下 table 包含特定于 NDB Cluster ndb_index_statUtil 的选项。下 table 后列出了其他说明。有关大多数 NDB 群集程序(包括ndb_index_stat)共有的选项,请参见第 21.4.32 节“ NDB 群集程序的公用选项-NDB 群集程序的公用选项”

table21.251 ndb_index_stat 程序的命令行选项

Format Description 添加,不建议使用或删除
--database=name ,

-d
包含 table 的数据库名称 (在所有基于 MySQL 5.7 的版本中受支持)
--delete 删除 table 的索引统计信息,停止先前配置的任何自动更新 (在所有基于 MySQL 5.7 的版本中支持)
--update 更新 table 的索引统计信息,重新启动以前配置的任何自动更新 (在所有基于 MySQL 5.7 的发行版中受支持)
--dump 打印查询缓存 (所有基于 MySQL 5.7 的版本均支持)
--query=# 对第一个键 attr 执行随机范围查询(必须为 int 无符号整数) (在所有基于 MySQL 5.7 的版本中受支持)
--sys-drop 丢弃 NDB 内核中的任何统计信息 table 和事件(所有统计信息都会丢失) (在所有基于 MySQL 5.7 的发行版中受支持)
--sys-create 在 NDB 内核中创建所有统计 table 和事件(如果尚不存在) (在所有基于 MySQL 5.7 的版本中受支持)
--sys-create-if-not-exist 在 NDB 内核中创建尚不存在的任何统计 table 和事件 (在所有基于 MySQL 5.7 的发行版中受支持)
--sys-create-if-not-valid 在删除无效的统计 table 或事件后,创建 NDB 内核中不存在的任何统计 table 或事件 (在所有基于 MySQL 5.7 的发行版中受支持)
--sys-check 验证是否存在 NDB 系统索引统计信息和事件 table (在所有基于 MySQL 5.7 的版本中受支持)
--sys-skip-tables 请勿将 sys- *选项应用于 table (在所有基于 MySQL 5.7 的版本中受支持)
--sys-skip-events 请勿将 sys- *选项应用于事件 (在所有基于 MySQL 5.7 的版本中受支持)
--verbose ,
-v
打开详细输出 (所有基于 MySQL 5.7 的版本均支持)
--loops=# 设置执行给定命令的次数;默认值为 0 (所有基于 MySQL 5.7 的版本均支持)

ndb_index_stat 统计信息选项. 以下选项用于生成索引统计信息。他们使用给定的 table 和数据库。它们不能与系统选项混合使用(请参阅ndb_index_stat 系统选项)。

Property Value
Command-Line Format --database=name
Type String
Default Value [none]
Minimum Value ``
Maximum Value ``

包含要查询的 table 的数据库的名称。

Property Value
Command-Line Format --delete
Type Boolean
Default Value false
Minimum Value ``
Maximum Value ``

删除给定 table 的索引统计信息,停止先前配置的任何自动更新。

Property Value
Command-Line Format --update
Type Boolean
Default Value false
Minimum Value ``
Maximum Value ``

更新给定 table 的索引统计信息,然后重新启动以前配置的所有自动更新。

Property Value
Command-Line Format --dump
Type Boolean
Default Value false
Minimum Value ``
Maximum Value ``

转储查询缓存的内容。

Property Value
Command-Line Format --query=#
Type Numeric
Default Value 0
Minimum Value 0
Maximum Value MAX_INT

对第一个键属性执行随机范围查询(必须为 int unsigned)。

ndb_index_stat 系统选项. 以下选项用于生成和更新 NDB 内核中的统计 table。这些选项都不能与统计信息选项混合使用(请参阅ndb_index_stat 统计信息选项)。

Property Value
Command-Line Format --sys-drop
Type Boolean
Default Value false
Minimum Value ``
Maximum Value ``

在 NDB 内核中删除所有统计信息 table 和事件。 这将导致所有统计信息丢失

Property Value
Command-Line Format --sys-create
Type Boolean
Default Value false
Minimum Value ``
Maximum Value ``

在 NDB 内核中创建所有统计信息 table 和事件。仅在以前都不存在的情况下,此方法才有效。

Property Value
Command-Line Format --sys-create-if-not-exist
Type Boolean
Default Value false
Minimum Value ``
Maximum Value ``

创建调用程序时尚不存在的任何 NDB 系统统计 table 或事件(或两者)。

Property Value
Command-Line Format --sys-create-if-not-valid
Type Boolean
Default Value false
Minimum Value ``
Maximum Value ``

在删除任何无效的 NDB 系统统计信息 table 或事件后,请创建它们。

Property Value
Command-Line Format --sys-check
Type Boolean
Default Value false
Minimum Value ``
Maximum Value ``

验证 NDB 内核中是否存在所有必需的系统统计信息 table 和事件。

Property Value
Command-Line Format --sys-skip-tables
Type Boolean
Default Value false
Minimum Value ``
Maximum Value ``

不要将任何--sys-*选项应用于任何统计信息 table。

Property Value
Command-Line Format --sys-skip-events
Type Boolean
Default Value false
Minimum Value ``
Maximum Value ``

不要对任何事件应用任何--sys-*选项。

Property Value
Command-Line Format --verbose
Type Boolean
Default Value false
Minimum Value ``
Maximum Value ``

打开详细输出。

Property Value
Command-Line Format --loops=#
Type Numeric
Default Value 0
Minimum Value 0
Maximum Value MAX_INT

重复命令此次数(用于测试)。

首页