ndb_index_stat 提供了关于 NDB
表的每个片段的统计信息,包括缓存版本和年龄、每个分区中的索引条目数、索引的内存消耗。
使用
要获取给定 NDB
表的基本索引统计信息,请使用以下命令,使用表名作为第一个参数,并使用 --database
(-d
) 选项指定包含该表的数据库名称:
ndb_index_stat table -d database
在这个示例中,我们使用 ndb_index_stat 获取名为 mytable
的 NDB
表在 test
数据库中的索引统计信息:
$> 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 Epoch 时间戳表示。
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 服务器和 MySQL 客户端应用程序)。
totalBytes
是表上的所有索引所消耗的总内存,以字节为单位。
前面的示例中显示的时间戳特定于每个 ndb_index_stat 调用。
使用 --verbose
选项可以提供一些附加输出,如下所示:
$> 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
$>
如果程序的唯一输出是 NDBT_ProgramExit: 0 - OK
,这可能表明还没有统计信息。要强制创建它们(或更新已有的),请使用 ndb_index_stat 的 --update
选项,或者在 mysql 客户端中执行 ANALYZE TABLE
。
选项
以下表格包括了 NDB 集群 ndb_index_stat 实用程序的特定选项。附加描述如下表。
表 25.35 使用 ndb_index_stat 程序的命令行选项
Format | Description | Added, Deprecated, or Removed |
---|---|---|
在放弃之前重试连接的次数 |
(在所有基于 MySQL 8.3 的 NDB 版本中支持) |
|
在尝试联系管理服务器之间等待的秒数 |
(在所有基于 MySQL 8.3 的 NDB 版本中支持) |
|
与 --ndb-connectstring 相同 |
(在所有基于 MySQL 8.3 的 NDB 版本中支持) |
|
包含表的数据库名称 |
(在所有基于 MySQL 8.3 的 NDB 版本中支持) |
|
在读取全局文件后读取给定的文件 |
(在所有基于 MySQL 8.3 的 NDB 版本中支持) |
|
仅从给定的文件中读取默认选项 |
(在所有基于 MySQL 8.3 的 NDB 版本中支持) |
|
也读取带有 concat(group, suffix) 的组 |
(在所有基于 MySQL 8.3 的 NDB 版本中支持) |
|
删除表的索引统计信息,停止任何之前配置的自动更新 |
(在所有基于 MySQL 8.3 的 NDB 版本中支持) |
|
打印查询缓存 |
(在所有基于 MySQL 8.3 的 NDB 版本中支持) |
|
显示帮助文本并退出 |
(在所有基于 MySQL 8.3 的 NDB 版本中支持) |
|
从登录文件中读取给定的路径 |
(在所有基于 MySQL 8.3 的 NDB 版本中支持) |
|
不从登录路径文件中读取登录路径 |
(在所有基于 MySQL 8.3 的 NDB 版本中支持) |
|
设置执行给定命令的次数;默认为 0 |
(在所有基于 MySQL 8.3 的 NDB 版本中支持) |
|
设置连接到 ndb_mgmd 的连接字符串。语法:"[nodeid=id;][host=]hostname[:port]"。覆盖 NDB_CONNECTSTRING 和 my.cnf 中的条目 |
(在所有基于 MySQL 8.3 的 NDB 版本中支持) |
|
ndb_mgm 客户端 TLS 要求级别 |
添加于:8.3.0 |
|
与 --ndb-connectstring 相同 |
(在所有基于 MySQL 8.3 的 NDB 版本中支持) |
|
设置该节点的节点 ID,覆盖 --ndb-connectstring 设置的 ID |
(在所有基于 MySQL 8.3 的 NDB 版本中支持) |
|
包含 TLS 密钥和证书的目录列表 |
添加于 8.3.0 |
|
不从任何选项文件中读取默认选项,除登录文件外 |
(在所有基于 MySQL 8.3 的 NDB 版本中支持) |
|
打印程序参数列表并退出 |
(在所有基于 MySQL 8.3 的 NDB 版本中支持) |
|
在第一个键属性上执行随机范围查询(必须是无符号整数) |
(在所有基于 MySQL 8.3 的 NDB 版本中支持) |
|
删除 NDB 内核中的所有统计表和事件(所有统计数据将丢失) |
(在所有基于 MySQL 8.3 的 NDB 版本中支持) |
|
在 NDB 内核中创建所有统计表和事件,如果它们不存在 |
(在所有基于 MySQL 8.3 的 NDB 版本中支持) |
|
创建 NDB 内核中不存在的统计表和事件 |
(在所有基于 MySQL 8.3 的 NDB 版本中支持) |
|
创建 NDB 内核中不存在或无效的统计表或事件 |
(在所有基于 MySQL 8.3 的 NDB 版本中支持) |
|
验证 NDB 系统索引统计表和事件是否存在 |
(在所有基于 MySQL 8.3 的 NDB 版本中支持) |
|
不将 sys-* 选项应用于表 |
(在所有基于 MySQL 8.3 的 NDB 版本中支持) |
|
不将 sys-* 选项应用于事件 |
(在所有基于 MySQL 8.3 的 NDB 版本中支持) |
|
更新表的索引统计信息,重新启动任何自动更新配置 |
(在所有基于 MySQL 8.3 的 NDB 版本中支持) |
|
显示帮助文本并退出;与 --help 相同 |
(在所有基于 MySQL 8.3 的 NDB 版本中支持) |
|
打开详细输出 |
(在所有基于 MySQL 8.3 的 NDB 版本中支持) |
|
显示版本信息并退出 |
(在所有基于 MySQL 8.3 的 NDB 版本中支持) |
-
Command-Line Format --character-sets-dir=路径
包含字符集的目录。
-
Command-Line Format --connect-retries=#
Type 整数 Default Value 12
Minimum Value 0
Maximum Value 12
在放弃之前重试连接的次数。
-
Command-Line Format --connect-retry-delay=#
Type 整数 Default Value 5
Minimum Value 0
Maximum Value 5
在尝试联系管理服务器之间等待的秒数。
-
Command-Line Format --connect-string=连接字符串
Type 字符串 Default Value [none]
与
--ndb-connectstring
相同。 -
Command-Line Format --core-file
在错误时写入核心文件;用于调试。
-
--database=
,名称
-d
名称
Command-Line Format --database=名称
Type 字符串 Default Value [none]
Minimum Value Maximum Value 要查询的表所在的数据库的名称。
-
Command-Line Format --defaults-extra-file=路径
Type 字符串 Default Value [none]
在全局文件读取后读取给定的文件。
-
Command-Line Format --defaults-file=路径
Type 字符串 Default Value [none]
仅从给定的文件读取默认选项。
-
Command-Line Format --defaults-group-suffix=字符串
Type 字符串 Default Value [none]
也读取带有 concat(group, suffix) 的组。
-
Command-Line Format --delete
删除给定表的索引统计信息,停止任何之前配置的自动更新。
-
Command-Line Format --dump
转储查询缓存的内容。
-
Command-Line Format --help
显示帮助文本并退出。
-
Command-Line Format --login-path=路径
Type 字符串 Default Value [无]
从登录文件中读取给定的路径。
-
Command-Line Format --no-login-paths
跳过从登录路径文件中读取选项。
-
Command-Line Format --loops=#
Type 数字 Default Value 0
Minimum Value 0
Maximum Value MAX_INT
重复命令此次数(用于测试)。
-
Command-Line Format --ndb-connectstring=connection_string
Type 字符串 Default Value [无]
设置连接字符串以连接到 ndb_mgmd。语法:
[nodeid=
。覆盖id
];[host=]hostname
[:port
]NDB_CONNECTSTRING
和my.cnf
中的条目。 -
Command-Line Format --ndb-mgm-tls=level
Type 枚举 Default Value relaxed
Valid Values relaxed
strict
设置连接到管理服务器所需的 TLS 支持级别;可以是
relaxed
或strict
。relaxed
(默认) 表示尝试 TLS 连接,但不要求成功:strict
表示需要 TLS 连接。 -
Command-Line Format --ndb-mgmd-host=connection_string
Type 字符串 Default Value [无]
与
--ndb-connectstring
相同。 -
Command-Line Format --ndb-nodeid=#
Type 整数 Default Value [无]
设置此节点的节点 ID,覆盖
--ndb-connectstring
中设置的 ID。 -
--ndb-optimized-node-selection
Command-Line Format --ndb-optimized-node-selection
启用事务的节点选择优化。默认启用;使用
--skip-ndb-optimized-node-selection
禁用。 -
Command-Line Format --ndb-tls-search-path=list
Type 路径名 Default Value (Unix) $HOME/ndb-tls
Default Value (Windows) $HOMEDIR/ndb-tls
指定要搜索 CA 文件的目录列表。在 Unix 平台上,目录名用冒号 (
:
) 分隔;在 Windows 系统上,分号 (;
) 用作分隔符。目录引用可以是相对的或绝对的,可以包含一个或多个环境变量,每个变量以美元符号 ($
) 开头,并在使用前展开。搜索从左到右进行,直到找到文件。空字符串表示空搜索路径,导致所有搜索失败。点 (
.
) 表示当前工作目录的搜索路径。如果没有提供搜索路径,默认值将被使用。该值取决于平台的使用:在 Windows 上,这是
\ndb-tls
;在其他平台(包括 Linux)上,这是$HOME/ndb-tls
。这可以通过使用-DWITH_NDB_TLS_SEARCH_PATH
编译 NDB Cluster 来覆盖。 -
Command-Line Format --no-defaults
不要从任何选项文件中读取默认选项,除了登录文件。
-
Command-Line Format --print-defaults
打印程序参数列表并退出。
-
Command-Line Format --query=#
Type 数字 Default Value 0
Minimum Value 0
Maximum Value MAX_INT
在第一个键属性上执行随机范围查询(必须是无符号整数)。
-
Command-Line Format --sys-drop
删除 NDB 内核中的所有统计表和事件。这将导致所有统计数据丢失。
-
Command-Line Format --sys-create
在 NDB 内核中创建所有统计表和事件。这仅在它们之前不存在时生效。
-
Command-Line Format --sys-create-if-not-exist
在 NDB 内核中创建任何不存在的统计表或事件(或两者)。
-
Command-Line Format --sys-create-if-not-valid
在 NDB 内核中创建任何不存在的统计表或事件,删除任何无效的统计表或事件。
-
Command-Line Format --sys-check
验证 NDB 内核中所有必需的统计表和事件是否存在。
-
Command-Line Format --sys-skip-tables
不要将任何
--sys-*
选项应用于任何统计表。 -
Command-Line Format --sys-skip-events
不要将任何
--sys-*
选项应用于任何事件。 -
Command-Line Format --update
更新给定表的索引统计信息,并重新启动任何自动更新配置。
-
Command-Line Format --usage
显示帮助文本并退出;与
--help
相同。 -
Command-Line Format --verbose
打开详细输出。
-
Command-Line Format --版本
显示版本信息并退出。
ndb_index_stat 系统选项。 以下选项用于生成和更新 NDB 内核中的统计表。这些选项不能与统计选项混用(见 ndb_index_stat 统计选项)。
ndb_index_stat 统计选项。 列出的选项用于生成索引统计信息。它们与给定的表和数据库一起工作。它们不能与系统选项混用(见 ndb_index_stat 系统选项)。