这是一个Perl脚本,可用于估计MySQL数据库的空间量,如果它被转换为使用该数据库ndbcluster.
存储引擎。与本节中讨论的其他实用程序不同,它不需要访问NDB群集(实际上,没有理由执行此操作)。但是,它确实需要访问要测试的数据库的MySQL服务器驻留。
要求
运行MySQL服务器。服务器实例不必为NDB群集提供支持。
Perl的工作安装。
这
DBI.
模块,如果它不是Perl安装的一部分,可以从CPAN获得。(许多Linux和其他操作系统发行版为此库提供了自己的软件包。)具有必要权限的MySQL用户帐户。如果您不希望使用现有帐户,则创建一个使用
授予使用
-在哪里db_name.
。*db_name.
是要检查的数据库的名称 - 以此目的是足够的。
ndb_size.pl.
也可以在mysql来源中找到存储/ NDB /工具
。
可以使用的选项ndb_size.pl.如下表所示。其他描述按照表格。
表23.48命令行选项与程序ndb_size.pl一起使用
格式 | 描述 | 添加,弃用或删除 |
---|---|---|
数据库或数据库;逗号分隔列表;默认为所有(使用服务器上的所有数据库) | (基于MySQL 8.0的所有NDB版本支持) |
|
指定主机和可选端口作为主机[:port] | (基于MySQL 8.0的所有NDB版本支持) |
|
指定要连接到的套接字 | (基于MySQL 8.0的所有NDB版本支持) |
|
指定MySQL用户名 | (基于MySQL 8.0的所有NDB版本支持) |
|
指定MySQL用户密码 | (基于MySQL 8.0的所有NDB版本支持) |
|
设置输出格式(文本或HTML) | (基于MySQL 8.0的所有NDB版本支持) |
|
跳过逗号分隔列表中的任何表 | (基于MySQL 8.0的所有NDB版本支持) |
|
跳过逗号分隔列表中的任何数据库 | (基于MySQL 8.0的所有NDB版本支持) |
|
将数据库中的所有查询保存到指定的文件中 | (基于MySQL 8.0的所有NDB版本支持) |
|
从指定的文件加载所有查询;不连接数据库 | (基于MySQL 8.0的所有NDB版本支持) |
|
指定表以处理唯一索引大小计算 | (基于MySQL 8.0的所有NDB版本支持) |
用法
perl ndb_size.pl [--database = {db_name.|所有}] [ - hostname =主持人[:港口] [--socket =插座] \ [--user =用户] [--password =密码] \ [--help | -h] [--format = {html | text}] \ [--loadqueries =文件名] [--savequeries =文件名]
默认情况下,此实用程序会尝试分析服务器上的所有数据库。您可以使用使用的单个数据库- 数据库
选项;可以使用默认行为明确全部
出于数据库的名称。您还可以使用中排除一个或多个数据库- 克服了
选项使用要跳过的数据库名称的分隔名单。同样,您可以通过列出逗号分隔的名称来剪清要跳过特定表,以后遵循可选的- 交换
选项。可以使用主机名使用- 主机名
;默认为localhost.
。除了主机外,您还可以指定端口主持人
:港口
价值的格式- 主机名
。默认端口号为3306.如有必要,您还可以指定套接字;默认为/var/lib/mysql.sock.
。可以指定显示的MySQL用户名和密码。它还可以使用使用的输出格式- 格式
选项;这可以采取任何一个值HTML.
或者文本
, 和文本
是默认值。此处显示了文本输出的示例:
shell> ndb_size.pl --database = test --socket = / tmp / mysql.sock ndb_size.pl.tails:'test'(1个表)--------------------------------------------------------------: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阵列可以使用可以保存到文件- 令人所存在
;可以使用脚本执行期间读取此类数组的文件- 填充
。这些选项都没有默认值。
要以HTML格式生成输出,请使用- 格式
选项并将输出重定向到文件,如此所示:
shell> ndb_size.pl --database = test --socket = / tmp / mysql.sock --format = html> ndb_size.html
(没有重定向,输出发送到stdout.
。)
此脚本的输出包括以下信息:
最小值
datamemory.
那IndexMemory.
那maxNooftables.
那maxnoofattributes.
那maxnooforderedindexes.
, 和maxnoftriggers.
适应分析表所需的配置参数。对数据库中定义的所有表,属性,有序索引以及唯一散列索引的内存要求。
这
IndexMemory.
和datamemory.
每个表和表行必需。