'\" t .\" Title: ndb_size.pl .\" Author: [FIXME: author] [see http://docbook.sf.net/el/author] .\" Generator: DocBook XSL Stylesheets v1.79.1 .\" Date: 03/11/2024 .\" Manual: MySQL Database System .\" Source: MySQL 8.4 .\" Language: English .\" .TH "NDB_SIZE\&.PL" "1" "03/11/2024" "MySQL 8\&.4" "MySQL Database System" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .\" http://bugs.debian.org/507673 .\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- .\" disable hyphenation .nh .\" disable justification (adjust text to left margin only) .ad l .\" ----------------------------------------------------------------- .\" * MAIN CONTENT STARTS HERE * .\" ----------------------------------------------------------------- .SH "NAME" ndb_size.pl \- NDBCLUSTER Size Requirement Estimator .SH "SYNOPSIS" .HP \w'\fBndb_size\&.pl\ \fR\fB\fIarguments\fR\fR\ 'u \fBndb_size\&.pl \fR\fB\fIarguments\fR\fR .SH "DESCRIPTION" .PP 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 an NDB 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\&. Requirements .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} A running MySQL server\&. The server instance does not have to provide support for NDB Cluster\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} A working installation of Perl\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} The DBI module, which can be obtained from CPAN if it is not already part of your Perl installation\&. (Many Linux and other operating system distributions provide their own packages for this library\&.) .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} 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 \fIdb_name\fR\&.*\(emwhere \fIdb_name\fR is the name of the database to be examined\(emis sufficient for this purpose\&. .RE .PP ndb_size\&.pl can also be found in the MySQL sources in storage/ndb/tools\&. .PP Options that can be used with \fBndb_size\&.pl\fR are shown in the following table\&. Additional descriptions follow the table\&. .PP Usage .sp .if n \{\ .RS 4 .\} .nf perl ndb_size\&.pl [\-\-database={\fIdb_name\fR|ALL}] [\-\-hostname=\fIhost\fR[:\fIport\fR]] [\-\-socket=\fIsocket\fR] \e [\-\-user=\fIuser\fR] [\-\-password=\fIpassword\fR] \e [\-\-help|\-h] [\-\-format={html|text}] \e [\-\-loadqueries=\fIfile_name\fR] [\-\-savequeries=\fIfile_name\fR] .fi .if n \{\ .RE .\} .PP By default, this utility attempts to analyze all databases on the server\&. You can specify a single database using the \fB\-\-database\fR 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 \fB\-\-excludedbs\fR 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 \fB\-\-excludetables\fR option\&. A host name can be specified using \fB\-\-hostname\fR; the default is localhost\&. You can specify a port in addition to the host using \fIhost\fR:\fIport\fR format for the value of \fB\-\-hostname\fR\&. 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 \fB\-\-format\fR 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: .sp .if n \{\ .RS 4 .\} .nf $> \fBndb_size\&.pl \-\-database=test \-\-socket=/tmp/mysql\&.sock\fR ndb_size\&.pl report for database: \*(Aqtest\*(Aq (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 .fi .if n \{\ .RE .\} .PP For debugging purposes, the Perl arrays containing the queries run by this script can be read from the file specified using can be saved to a file using \fB\-\-savequeries\fR; a file containing such arrays to be read during script execution can be specified using \fB\-\-loadqueries\fR\&. Neither of these options has a default value\&. .PP To produce output in HTML format, use the \fB\-\-format\fR option and redirect the output to a file, as shown here: .sp .if n \{\ .RS 4 .\} .nf $> \fBndb_size\&.pl \-\-database=test \-\-socket=/tmp/mysql\&.sock \-\-format=html > ndb_size\&.html\fR .fi .if n \{\ .RE .\} .PP (Without the redirection, the output is sent to stdout\&.) .PP The output from this script includes the following information: .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} Minimum values for the DataMemory, IndexMemory, MaxNoOfTables, MaxNoOfAttributes, MaxNoOfOrderedIndexes, and MaxNoOfTriggers configuration parameters required to accommodate the tables analyzed\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} Memory requirements for all of the tables, attributes, ordered indexes, and unique hash indexes defined in the database\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} The IndexMemory and DataMemory required per table and table row\&. .RE .SH "COPYRIGHT" .br .PP Copyright \(co 1997, 2024, Oracle and/or its affiliates. .PP This documentation is free software; you can redistribute it and/or modify it only under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License. .PP This documentation is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. .PP You should have received a copy of the GNU General Public License along with the program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA or see http://www.gnu.org/licenses/. .sp .SH "SEE ALSO" For more information, please refer to the MySQL Reference Manual, which may already be installed locally and which is also available online at http://dev.mysql.com/doc/. .SH AUTHOR Oracle Corporation (http://dev.mysql.com/).