ndb_size.pl - NDBCluster Size Requirement Estimator
This is a Perl script that can be used to estimate the amount of space that
would be required by a MySQL database if it were converted to use the
NDBCluster storage engine. Unlike the other utilities discussed in this
section, it does not require access to a MySQL Cluster (in fact, there is
no reason for it to do so). However, it does need to access the MySQL
server on which the database to be tested resides.
· A running MySQL server. The server instance does not have to provide
support for MySQL Cluster.
· A working installation of Perl.
· The DBI and HTML::Template modules, both of which can be obtained from
CPAN if they are not already part of your Perl installation. (Many Linux
and other operating system distribution provide their own packages for
one or both of these libraries.)
· The ndb_size.tmpl template file, which you should be able to find in the
share/mysql directory of your MySQL installation. This file should be
copied or moved into the same directory as ndb_size.pl - if it is not
there already - before running the script.
· A MySQL user account having the necessary privileges. If you do not wish
to use an existing account, then creating one using GRANT USAGE ON
db_name.* - where db_name is the name of the database to be examined -
is sufficient for this purpose.
ndb_size.pl and ndb_size.tmpl can also be found in the MySQL sources in
storage/ndb/tools. If these files are not present in your MySQL
installation, you can obtain them from the MySQLForge project page.
perl ndb_size.pl db_name hostname username password > file_name.html
The command shown connects to the MySQL server at hostname using the
account of the user username having the password password, analyses all of
the tables in database db_name, and generates a report in HTML format which
is directed to the file file_name.html. (Without the redirection, the
output is sent to stdout.) This figure shows partial sample output as
viewed in a Web browser:
The output from this script includes:
· Minimum values for the DataMemory, IndexMemory, MaxNoOfTables,
MaxNoOfAttributes, MaxNoOfOrderedIndexes, MaxNoOfUniqueHashIndexes, and
MaxNoOfTriggers configuration parameters required to accommodate the
· Memory requirements for all of the tables, attributes, ordered indexes,
and unique hash indexes defined in the database.
· The IndexMemory and DataMemory required per table and table row.
Copyright 1997-2007 MySQL AB
This documentation is NOT distributed under a GPL license. Use of this
documentation is subject to the following terms: You may create a printed
copy of this documentation solely for your own personal use. Conversion to
other formats is allowed as long as the actual content is not altered or
edited in any way. You shall not publish or distribute this documentation
in any form or on any media, except if you distribute the documentation in
a manner similar to how MySQL disseminates it (that is, electronically for
download on a Web site with the software) or on a CD-ROM or similar medium,
provided however that the documentation is disseminated together with the
software on the same medium. Any other use, such as any dissemination of
printed copies or use of this documentation, in whole or in part, in
another publication, requires the prior written consent from an authorized
representative of MySQL AB. MySQL AB reserves any and all rights to this
documentation not expressly granted above.
Please email <firstname.lastname@example.org> for more information.
1. MySQLForge project page
make_win_bin_dist(1), msql2mysql(1), my_print_defaults(1),
myisam_ftdump(1), myisamchk(1), myisamlog(1), myisampack(1), mysql(1),
mysql.server(1), mysql_config(1), mysql_explain_log(1),
mysql_fix_privilege_tables(1), mysql_install_db(1), mysql_tzinfo_to_sql(1),
mysql_upgrade(1), mysql_zap(1), mysqlaccess(1), mysqladmin(1),
mysqlbinlog(1), mysqlcheck(1), mysqld(8), mysqld_multi(1), mysqld_safe(1),
mysqldump(1), mysqlhotcopy(1), mysqlimport(1), mysqlmanager(8),
mysqlshow(1), ndb_config(1), ndb_cpcd(1), ndb_delete_all(1), ndb_desc(1),
ndb_drop_index(1), ndb_drop_table(1), ndb_error_reporter(1), ndb_mgm(1),
ndb_mgmd(1), ndb_print_backup_file(1), ndb_print_schema_file(1),
ndb_print_sys_file(1), ndb_restore(1), ndb_select_all(1),
ndb_select_count(1), ndb_show_tables(1), ndb_waiter(1), ndbd(1), perror(1),
For more information, please refer to the MySQL Reference Manual, which may
already be installed locally and which is also available online at
MySQL AB (http://www.mysql.com/). This software comes with no warranty.