Documentation Home
MySQL 8.0 参考手册  / 第 23 章 MySQL NDB Cluster 8.0  / 23.5 NDB 集群程序  /  23.5.28 ndb_size.pl — NDBCLUSTER 大小需求估计器

23.5.28 ndb_size.pl — NDBCLUSTER 大小需求估计器

这是一个 Perl 脚本,可用于估算 MySQL 数据库转换为使用NDBCLUSTER 存储引擎时所需的空间量。与本节中讨论的其他实用程序不同,它不需要访问 NDB Cluster(事实上,没有理由这样做)。但是,它确实需要访问待测数据库所在的MySQL服务器。

要求

  • 正在运行的 MySQL 服务器。服务器实例不必为 NDB Cluster 提供支持。

  • Perl 的工作安装。

  • DBI模块,如果它还不是您的 Perl 安装的一部分,可以从 CPAN 获得。(许多 Linux 和其他操作系统发行版都为这个库提供了自己的包。)

  • 具有必要权限的 MySQL 用户帐户。如果您不想使用现有帐户,那么使用创建一个帐户(要检查的数据库的名称在哪里)就足够了 。 GRANT USAGE ON db_name.*db_name

ndb_size.pl也可以在 MySQL 源代码中找到storage/ndb/tools

下表显示了 可以与ndb_size.pl一起使用的选项。表后有其他说明。

表 23.49 与程序 ndb_size.pl 一起使用的命令行选项

格式 描述 添加、弃用或删除

--database=string

要检查的一个或多个数据库;逗号分隔的列表;默认为 ALL(使用在服务器上找到的所有数据库)

(支持所有基于 MySQL 8.0 的 NDB 版本)

--hostname=string

以 host[:port] 格式指定主机和可选端口

(支持所有基于 MySQL 8.0 的 NDB 版本)

--socket=path

指定要连接的套接字

(支持所有基于 MySQL 8.0 的 NDB 版本)

--user=string

指定 MySQL 用户名

(支持所有基于 MySQL 8.0 的 NDB 版本)

--password=password

指定 MySQL 用户密码

(支持所有基于 MySQL 8.0 的 NDB 版本)

--format=string

设置输出格式(文本或 HTML)

(支持所有基于 MySQL 8.0 的 NDB 版本)

--excludetables=list

跳过逗号分隔列表中的任何表格

(支持所有基于 MySQL 8.0 的 NDB 版本)

--excludedbs=list

跳过以逗号分隔的列表中的任何数据库

(支持所有基于 MySQL 8.0 的 NDB 版本)

--savequeries=path

将数据库中的所有查询保存到指定的文件中

(支持所有基于 MySQL 8.0 的 NDB 版本)

--loadqueries=path

从指定文件加载所有查询;没有连接到数据库

(支持所有基于 MySQL 8.0 的 NDB 版本)

--real_table_name=string

指定表来处理唯一索引大小计算

(支持所有基于 MySQL 8.0 的 NDB 版本)


用法

perl ndb_size.pl [--database={db_name|ALL}] [--hostname=host[:port]] [--socket=socket] \
      [--user=user] [--password=password]  \
      [--help|-h] [--format={html|text}] \
      [--loadqueries=file_name] [--savequeries=file_name]

默认情况下,此实用程序会尝试分析服务器上的所有数据库。--database您可以使用该选项指定单个数据库 ;ALL默认行为可以通过使用数据库的名称来明确。您还可以通过使用--excludedbs带有要跳过的数据库名称的逗号分隔列表的选项来排除一个或多个数据库。--excludetables同样,您可以通过在可选选项后面列出它们的名称(以逗号分隔)来跳过特定的表。可以使用--hostname;指定主机名 默认为localhost. 除了主机之外,您还可以使用 host:port 格式指定端口值--hostname. 默认端口号为3306,如果需要,也可以指定socket;默认为/var/lib/mysql.sock. 一个MySQL用户名和密码可以指定相应的选项显示。也可以使用--format选项控制输出格式;这可以采用值html或 中的任何一个texttext作为默认值。此处显示了文本输出的示例:

$> ndb_size.pl --database=test --socket=/tmp/mysql.sock
ndb_size.pl report for database: 'test' (1 tables)
--------------------------------------------------
Connected to: DBI:mysql:host=localhost;mysql_socket=/tmp/mysql.sock

Including information for versions: 4.1, 5.0, 5.1

test.t1
-------

DataMemory for Columns (* means varsized DataMemory):
         Column Name            Type  Varsized   Key  4.1  5.0   5.1
     HIDDEN_NDB_PKEY          bigint             PRI    8    8     8
                  c2     varchar(50)         Y         52   52    4*
                  c1         int(11)                    4    4     4
                                                       --   --    --
Fixed Size Columns DM/Row                              64   64    12
   Varsize Columns DM/Row                               0    0     4

DataMemory for Indexes:
   Index Name                 Type        4.1        5.0        5.1
      PRIMARY                BTREE         16         16         16
                                           --         --         --
       Total Index DM/Row                  16         16         16

IndexMemory for Indexes:
               Index Name        4.1        5.0        5.1
                  PRIMARY         33         16         16
                                  --         --         --
           Indexes IM/Row         33         16         16

Summary (for THIS table):
                                 4.1        5.0        5.1
    Fixed Overhead DM/Row         12         12         16
           NULL Bytes/Row          4          4          4
           DataMemory/Row         96         96         48
                    (Includes overhead, bitmap and indexes)

  Varsize Overhead DM/Row          0          0          8
   Varsize NULL Bytes/Row          0          0          4
       Avg Varside DM/Row          0          0         16

                 No. Rows          0          0          0

        Rows/32kb DM Page        340        340        680
Fixedsize DataMemory (KB)          0          0          0

Rows/32kb Varsize DM Page          0          0       2040
  Varsize DataMemory (KB)          0          0          0

         Rows/8kb IM Page        248        512        512
         IndexMemory (KB)          0          0          0

Parameter Minimum Requirements
------------------------------
* indicates greater than default

                Parameter     Default        4.1         5.0         5.1
          DataMemory (KB)       81920          0           0           0
       NoOfOrderedIndexes         128          1           1           1
               NoOfTables         128          1           1           1
         IndexMemory (KB)       18432          0           0           0
    NoOfUniqueHashIndexes          64          0           0           0
           NoOfAttributes        1000          3           3           3
             NoOfTriggers         768          5           5           5

出于调试目的,包含此脚本运行的查询的 Perl 数组可以从指定的文件中读取使用可以保存到文件中--savequeries;可以使用指定包含要在脚本执行期间读取的此类数组的文件--loadqueries。这些选项都没有默认值。

要生成 HTML 格式的输出,请使用该 --format选项并将输出重定向到文件,如下所示:

$> ndb_size.pl --database=test --socket=/tmp/mysql.sock --format=html > ndb_size.html

(没有重定向,输出被发送到 stdout。)

此脚本的输出包括以下信息: