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 程序的命令行选项

FormatDescription添加,不建议使用或删除
--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 系统选项)。

  • --database=name , -d name

PropertyValue
Command-Line Format--database=name
TypeString
Default Value[none]
Minimum Value``
Maximum Value``

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

  • --delete

PropertyValue
Command-Line Format--delete
TypeBoolean
Default Valuefalse
Minimum Value``
Maximum Value``

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

  • --update

PropertyValue
Command-Line Format--update
TypeBoolean
Default Valuefalse
Minimum Value``
Maximum Value``

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

  • --dump

PropertyValue
Command-Line Format--dump
TypeBoolean
Default Valuefalse
Minimum Value``
Maximum Value``

转储查询缓存的内容。

  • --query=#

PropertyValue
Command-Line Format--query=#
TypeNumeric
Default Value0
Minimum Value0
Maximum ValueMAX_INT

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

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

  • --sys-drop

PropertyValue
Command-Line Format--sys-drop
TypeBoolean
Default Valuefalse
Minimum Value``
Maximum Value``

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

  • --sys-create

PropertyValue
Command-Line Format--sys-create
TypeBoolean
Default Valuefalse
Minimum Value``
Maximum Value``

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

  • sys-create-if-not-exist

PropertyValue
Command-Line Format--sys-create-if-not-exist
TypeBoolean
Default Valuefalse
Minimum Value``
Maximum Value``

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

  • --sys-create-if-not-valid

PropertyValue
Command-Line Format--sys-create-if-not-valid
TypeBoolean
Default Valuefalse
Minimum Value``
Maximum Value``

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

  • --sys-check

PropertyValue
Command-Line Format--sys-check
TypeBoolean
Default Valuefalse
Minimum Value``
Maximum Value``

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

  • --sys-skip-tables

PropertyValue
Command-Line Format--sys-skip-tables
TypeBoolean
Default Valuefalse
Minimum Value``
Maximum Value``

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

  • --sys-skip-events

PropertyValue
Command-Line Format--sys-skip-events
TypeBoolean
Default Valuefalse
Minimum Value``
Maximum Value``

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

  • --verbose

PropertyValue
Command-Line Format--verbose
TypeBoolean
Default Valuefalse
Minimum Value``
Maximum Value``

打开详细输出。

  • --loops=#

PropertyValue
Command-Line Format--loops=#
TypeNumeric
Default Value0
Minimum Value0
Maximum ValueMAX_INT

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