Documentation Home
MySQL 8.3 Reference Manual
Related Documentation Download this Manual
PDF (US Ltr) - 40.8Mb
PDF (A4) - 40.9Mb
Man Pages (TGZ) - 294.0Kb
Man Pages (Zip) - 409.0Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb
Excerpts from this Manual

MySQL 8.3 Reference Manual  /  ...  /  ndb_index_stat — NDB Index Statistics Utility

25.5.14 ndb_index_stat — NDB 索引统计实用程序

ndb_index_stat 提供了关于 NDB 表的每个片段的统计信息,包括缓存版本和年龄、每个分区中的索引条目数、索引的内存消耗。

使用

要获取给定 NDB 表的基本索引统计信息,请使用以下命令,使用表名作为第一个参数,并使用 --database (-d) 选项指定包含该表的数据库名称:

ndb_index_stat table -d database

在这个示例中,我们使用 ndb_index_stat 获取名为 mytableNDB 表在 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 INDEXINFORMATION_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

--connect-retries=#

在放弃之前重试连接的次数

(在所有基于 MySQL 8.3 的 NDB 版本中支持)

--connect-retry-delay=#

在尝试联系管理服务器之间等待的秒数

(在所有基于 MySQL 8.3 的 NDB 版本中支持)

--connect-string=connection_string,

-c connection_string

与 --ndb-connectstring 相同

(在所有基于 MySQL 8.3 的 NDB 版本中支持)

--database=name,

-d name

包含表的数据库名称

(在所有基于 MySQL 8.3 的 NDB 版本中支持)

--defaults-extra-file=path

在读取全局文件后读取给定的文件

(在所有基于 MySQL 8.3 的 NDB 版本中支持)

--defaults-file=path

仅从给定的文件中读取默认选项

(在所有基于 MySQL 8.3 的 NDB 版本中支持)

--defaults-group-suffix=string

也读取带有 concat(group, suffix) 的组

(在所有基于 MySQL 8.3 的 NDB 版本中支持)

--delete

删除表的索引统计信息,停止任何之前配置的自动更新

(在所有基于 MySQL 8.3 的 NDB 版本中支持)

--dump

打印查询缓存

(在所有基于 MySQL 8.3 的 NDB 版本中支持)

--help,

-?

显示帮助文本并退出

(在所有基于 MySQL 8.3 的 NDB 版本中支持)

--login-path=path

从登录文件中读取给定的路径

(在所有基于 MySQL 8.3 的 NDB 版本中支持)

--no-login-paths

不从登录路径文件中读取登录路径

(在所有基于 MySQL 8.3 的 NDB 版本中支持)

--loops=#

设置执行给定命令的次数;默认为 0

(在所有基于 MySQL 8.3 的 NDB 版本中支持)

--ndb-connectstring=connection_string,

-c connection_string

设置连接到 ndb_mgmd 的连接字符串。语法:"[nodeid=id;][host=]hostname[:port]"。覆盖 NDB_CONNECTSTRING 和 my.cnf 中的条目

(在所有基于 MySQL 8.3 的 NDB 版本中支持)

--ndb-mgm-tls=level

ndb_mgm 客户端 TLS 要求级别

添加于:8.3.0

--ndb-mgmd-host=连接字符串,

-c 连接字符串

与 --ndb-connectstring 相同

(在所有基于 MySQL 8.3 的 NDB 版本中支持)

#--ndb-nodeid=节点 ID

设置该节点的节点 ID,覆盖 --ndb-connectstring 设置的 ID

(在所有基于 MySQL 8.3 的 NDB 版本中支持)

--ndb-tls-search-path=目录列表

包含 TLS 密钥和证书的目录列表

添加于 8.3.0

--no-defaults

不从任何选项文件中读取默认选项,除登录文件外

(在所有基于 MySQL 8.3 的 NDB 版本中支持)

--print-defaults

打印程序参数列表并退出

(在所有基于 MySQL 8.3 的 NDB 版本中支持)

--query=#

在第一个键属性上执行随机范围查询(必须是无符号整数)

(在所有基于 MySQL 8.3 的 NDB 版本中支持)

--sys-drop

删除 NDB 内核中的所有统计表和事件(所有统计数据将丢失)

(在所有基于 MySQL 8.3 的 NDB 版本中支持)

--sys-create

在 NDB 内核中创建所有统计表和事件,如果它们不存在

(在所有基于 MySQL 8.3 的 NDB 版本中支持)

--sys-create-if-not-exist

创建 NDB 内核中不存在的统计表和事件

(在所有基于 MySQL 8.3 的 NDB 版本中支持)

--sys-create-if-not-valid

创建 NDB 内核中不存在或无效的统计表或事件

(在所有基于 MySQL 8.3 的 NDB 版本中支持)

--sys-check

验证 NDB 系统索引统计表和事件是否存在

(在所有基于 MySQL 8.3 的 NDB 版本中支持)

--sys-skip-tables

不将 sys-* 选项应用于表

(在所有基于 MySQL 8.3 的 NDB 版本中支持)

--sys-skip-events

不将 sys-* 选项应用于事件

(在所有基于 MySQL 8.3 的 NDB 版本中支持)

--update

更新表的索引统计信息,重新启动任何自动更新配置

(在所有基于 MySQL 8.3 的 NDB 版本中支持)

--usage,

-?

显示帮助文本并退出;与 --help 相同

(在所有基于 MySQL 8.3 的 NDB 版本中支持)

--verbose,

-v

打开详细输出

(在所有基于 MySQL 8.3 的 NDB 版本中支持)

--version,

-V

显示版本信息并退出

(在所有基于 MySQL 8.3 的 NDB 版本中支持)


  • --character-sets-dir

    Command-Line Format --character-sets-dir=路径

    包含字符集的目录。

  • --connect-retries

    Command-Line Format --connect-retries=#
    Type 整数
    Default Value 12
    Minimum Value 0
    Maximum Value 12

    在放弃之前重试连接的次数。

  • --connect-retry-delay

    Command-Line Format --connect-retry-delay=#
    Type 整数
    Default Value 5
    Minimum Value 0
    Maximum Value 5

    在尝试联系管理服务器之间等待的秒数。

  • --connect-string

    Command-Line Format --connect-string=连接字符串
    Type 字符串
    Default Value [none]

    --ndb-connectstring相同。

  • --core-file

    Command-Line Format --core-file

    在错误时写入核心文件;用于调试。

  • --database=名称, -d 名称

    Command-Line Format --database=名称
    Type 字符串
    Default Value [none]
    Minimum Value
    Maximum Value

    要查询的表所在的数据库的名称。

  • --defaults-extra-file

    Command-Line Format --defaults-extra-file=路径
    Type 字符串
    Default Value [none]

    在全局文件读取后读取给定的文件。

  • --defaults-file

    Command-Line Format --defaults-file=路径
    Type 字符串
    Default Value [none]

    仅从给定的文件读取默认选项。

  • --defaults-group-suffix

    Command-Line Format --defaults-group-suffix=字符串
    Type 字符串
    Default Value [none]

    也读取带有 concat(group, suffix) 的组。

  • --delete

    Command-Line Format --delete

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

  • --dump

    Command-Line Format --dump

    转储查询缓存的内容。

  • --help

    Command-Line Format --help

    显示帮助文本并退出。

  • --login-path

    Command-Line Format --login-path=路径
    Type 字符串
    Default Value [无]

    从登录文件中读取给定的路径。

  • --no-login-paths

    Command-Line Format --no-login-paths

    跳过从登录路径文件中读取选项。

  • --loops=#

    Command-Line Format --loops=#
    Type 数字
    Default Value 0
    Minimum Value 0
    Maximum Value MAX_INT

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

  • --ndb-connectstring

    Command-Line Format --ndb-connectstring=connection_string
    Type 字符串
    Default Value [无]

    设置连接字符串以连接到 ndb_mgmd。语法:[nodeid=id];[host=]hostname[:port]。覆盖 NDB_CONNECTSTRINGmy.cnf 中的条目。

  • --ndb-mgm-tls

    Command-Line Format --ndb-mgm-tls=level
    Type 枚举
    Default Value relaxed
    Valid Values

    relaxed

    strict

    设置连接到管理服务器所需的 TLS 支持级别;可以是 relaxedstrictrelaxed(默认) 表示尝试 TLS 连接,但不要求成功:strict 表示需要 TLS 连接。

  • --ndb-mgmd-host

    Command-Line Format --ndb-mgmd-host=connection_string
    Type 字符串
    Default Value [无]

    --ndb-connectstring 相同。

  • --ndb-nodeid

    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 禁用。

  • --ndb-tls-search-path

    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 来覆盖。

  • --no-defaults

    Command-Line Format --no-defaults

    不要从任何选项文件中读取默认选项,除了登录文件。

  • --print-defaults

    Command-Line Format --print-defaults

    打印程序参数列表并退出。

  • --query=#

    Command-Line Format --query=#
    Type 数字
    Default Value 0
    Minimum Value 0
    Maximum Value MAX_INT

    在第一个键属性上执行随机范围查询(必须是无符号整数)。

  • --sys-drop

    Command-Line Format --sys-drop

    删除 NDB 内核中的所有统计表和事件。这将导致所有统计数据丢失

  • --sys-create

    Command-Line Format --sys-create

    在 NDB 内核中创建所有统计表和事件。这仅在它们之前不存在时生效。

  • --sys-create-if-not-exist

    Command-Line Format --sys-create-if-not-exist

    在 NDB 内核中创建任何不存在的统计表或事件(或两者)。

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

    Command-Line Format --sys-create-if-not-valid

    在 NDB 内核中创建任何不存在的统计表或事件,删除任何无效的统计表或事件。

  • --sys-check

    Command-Line Format --sys-check

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

  • --sys-skip-tables

    Command-Line Format --sys-skip-tables

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

  • --sys-skip-events

    Command-Line Format --sys-skip-events

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

  • --update

    Command-Line Format --update

    更新给定表的索引统计信息,并重新启动任何自动更新配置。

  • --usage

    Command-Line Format --usage

    显示帮助文本并退出;与 --help相同。

  • --verbose

    Command-Line Format --verbose

    打开详细输出。

  • --version

    Command-Line Format --版本

    显示版本信息并退出。

ndb_index_stat 系统选项。 以下选项用于生成和更新 NDB 内核中的统计表。这些选项不能与统计选项混用(见 ndb_index_stat 统计选项)。

ndb_index_stat 统计选项。 列出的选项用于生成索引统计信息。它们与给定的表和数据库一起工作。它们不能与系统选项混用(见 ndb_index_stat 系统选项)。