21.4.15 ndb_index_stat — NDB 索引统计 Util
ndb_index_stat提供有关NDB
table 上索引的每个片段的统计信息。这包括高速缓存版本和寿命,每个分区的索引条目数以及按索引的内存消耗。
Usage
要获取有关给定NDBtable 的基本索引统计信息,请调用ndb_index_stat,如此处所示,使用--database(-d
)选项,将 table 名作为第一个参数,并将包含该 table 的数据库的名称紧随其后指定:
ndb_index_stat table -d database
在此示例中,我们使用ndb_index_stat获取有关test
数据库中名为mytable
的NDB
table 的信息:
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 INDEX或INFORMATION_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 |
重复命令此次数(用于测试)。