• 首页
  • vue
  • TypeScript
  • JavaScript
  • scss
  • css3
  • html5
  • php
  • MySQL
  • redis
  • jQuery
  • ndb_size.pl — NDBCLUSTER大小需求估算器

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

    要求

    • 正在运行的MySQL服务器。该服务器实例不必为NDB群集提供支持。
    • Perl的有效安装。
    • 如果该DBI模块尚未包含在Perl安装中,则可以从CPAN获得。(许多Linux和其他操作系统发行版为此库提供了自己的软件包。)
    • 具有必要特权的MySQL用户帐户。如果你不希望使用现有的帐户,然后使用一个创造-where 是在该数据库的名称检查,是足以达到此目的。GRANT USAGE ON db_name.*db_name

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

    下表包含特定于NDB群集程序ndb_size.pl的选项。附加说明如下表。有关大多数NDB群集程序(包括ndb_size.pl)通用的选项,请参见“ NDB群集程序的通用选项— NDB群集程序的通用选项”。

    ndb_size.pl程序的命令行选项

    格式描述添加,不建议使用或删除

    --database=dbname

    一个或多个要检查的数据库;接受以逗号分隔的列表;缺省值为ALL(使用服务器上找到的所有数据库)

    (在所有基于MySQL 8.0的版本中受支持)

    --hostname[:port]

    指定主机和可选端口作为主机[:port]

    (在所有基于MySQL 8.0的版本中受支持)

    --socket=file_name

    指定要连接的套接字

    (在所有基于MySQL 8.0的版本中受支持)

    --user=string

    指定一个MySQL用户名

    (在所有基于MySQL 8.0的版本中受支持)

    --password=string

    指定一个MySQL用户密码

    (在所有基于MySQL 8.0的版本中受支持)

    --format=string

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

    (在所有基于MySQL 8.0的版本中受支持)

    --excludetables=tbl_list

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

    (在所有基于MySQL 8.0的版本中受支持)

    --excludedbs=db_list

    跳过数据库中以逗号分隔的所有数据库

    (在所有基于MySQL 8.0的版本中受支持)

    --savequeries=file

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

    (在所有基于MySQL 8.0的版本中受支持)

    --loadqueries=file

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

    (在所有基于MySQL 8.0的版本中受支持)

    --real_table_name=table

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

    (在所有基于MySQL 8.0的版本中受支持)


    用法

    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]
    

    By default, this utility attempts to analyze all databases on the server. You can specify a single database using the --database option; the default behavior can be made explicit by using ALL for the name of the database. You can also exclude one or more databases by using the --excludedbs option with a comma-separated list of the names of the databases to be skipped. Similarly, you can cause specific tables to be skipped by listing their names, separated by commas, following the optional --excludetables option. A host name can be specified using --hostname; the default is localhost. You can specify a port in addition to the host using host:port format for the value of --hostname. The default port number is 3306. If necessary, you can also specify a socket; the default is /var/lib/mysql.sock. A MySQL user name and password can be specified the corresponding options shown. It also possible to control the format of the output using the --format option; this can take either of the values html or text, with text being the default. An example of the text output is shown here:

    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。)

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

    • 为最小值DataMemoryIndexMemoryMaxNoOfTablesMaxNoOfAttributesMaxNoOfOrderedIndexes,和MaxNoOfTriggers以容纳表所需的配置参数进行分析。
    • 数据库中定义的所有表,属性,有序索引和唯一哈希索引的内存要求。
    • IndexMemoryDataMemory每个表和表行所需。