21.4.29 ndb_size.pl — NDBCLUSTER 大小需求估算器

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

Requirements

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

下 table 包括特定于 NDB 群集程序ndb_size.pl的选项。附加说明如下 table 所示。有关大多数 NDB 群集程序(包括ndb_size.pl)共有的选项,请参见第 21.4.32 节“ NDB 群集程序的公用选项-NDB 群集程序的公用选项”

table21.262 ndb_size.pl 程序的命令行选项

Format Description 添加,不建议使用或删除
--database=dbname 数据库或要检查的数据库;逗号分隔的列 table;默认为 ALL(使用服务器上找到的所有数据库) (在所有基于 MySQL 5.7 的版本中受支持)
--hostname[:port] 指定主机和可选端口作为主机[:port] (在所有基于 MySQL 5.7 的版本中受支持)
--socket=file_name 指定要连接的 socket (在所有基于 MySQL 5.7 的版本中受支持)
--user=string 指定 MySQL 用户名 (在所有基于 MySQL 5.7 的版本中受支持)
--password=string 指定 MySQL 用户密码 (在所有基于 MySQL 5.7 的版本中受支持)
--format=string 设置输出格式(文本或 HTML) (在所有基于 MySQL 5.7 的版本中受支持)
--excludetables=tbl_list 跳过逗号分隔列 table 中的所有 table (在所有基于 MySQL 5.7 的版本中受支持)
--excludedbs=db_list 跳过逗号分隔列 table 中的所有数据库 (在所有基于 MySQL 5.7 的版本中受支持)
--savequeries=file 将数据库上的所有查询保存到指定的文件中 (在所有基于 MySQL 5.7 的版本中受支持)
--loadqueries=file 从指定的文件加载所有查询;没有连接到数据库 (在所有基于 MySQL 5.7 的版本中受支持)
--real_table_name=table 指定 table 以处理唯一的索引大小计算 (在所有基于 MySQL 5.7 的版本中受支持)

Usage

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]

默认情况下,此 Util 尝试分析服务器上的所有数据库。您可以使用--database选项指定一个数据库。通过使用ALL作为数据库名称,可以使默认行为明确。您还可以通过使用--excludedbs选项以及要跳过的数据库名称的逗号分隔列 table 来排除一个或多个数据库。同样,您可以通过在可选的--excludetables选项后列出它们的名称(以逗号分隔)来跳过特定的 table。主机名可以使用--hostname指定;默认值为localhost。您可以使用* host port *格式为--hostname的值指定主机以外的端口。默认端口号是 3306.如有必要,您还可以指定一个套接字。默认值为/var/lib/mysql.sock。可以指定一个 MySQL 用户名和密码,并显示相应的选项。也可以使用--format选项控制输出的格式。可以采用htmltext的值,默认值为text。文本输出的示例如下所示:

shell> 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选项并将输出重定向到文件,如下所示:

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

(没有重定向,输出将发送到stdout.)

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

首页