これは、NDBCLUSTER
ストレージエンジンを使用するように変更された場合に、MySQL データベースによって要求される空き領域の大きさを見積もるために使用できる Perl スクリプトです。このセクションで説明したほかのユーティリティーとは異なり、MySQL Cluster にアクセスする必要はありません (実際、アクセスする理由がありません)。ただし、テストするデータベースがある MySQL サーバーにアクセスする必要はあります。
要件
実行されている MySQL サーバー。サーバーインスタンスが MySQL Cluster のサポートを提供する必要はありません。
Perl の有効なインストール。
DBI
モジュール (まだ Perl インストールの一部でない場合は、CPAN から取得できます)(多くの Linux およびその他のオペレーティングシステム配布では、このライブラリの独自のパッケージが提供されています)。必要な権限を持つ MySQL ユーザーアカウント。既存のアカウントを使用したくない場合は、
GRANT USAGE ON
を使用して作成するだけでこの用途には十分です。ここで、db_name
.*db_name
は検査するデータベースの名前です。
ndb_size.pl
は、storage/ndb/tools
内の MySQL ソースでも見つかります。
次の表には、MySQL Cluster プログラム ndb_size.pl に固有のオプションが含まれています。追加説明が表のあとにあります。ほとんどの MySQL Cluster プログラム (ndb_size.pl を含む) に共通するオプションについては、セクション18.4.27「MySQL Cluster プログラムに共通するオプション — MySQL Cluster プログラムに共通するオプション」を参照してください。
表 18.95 この表は、ndb_size.pl プログラムのコマンド行オプションについて説明しています
形式 | 説明 | 追加または削除 |
---|---|---|
検査するデータベース。カンマ区切りのリストを指定できます。デフォルトは ALL です (サーバーで見つかったすべてのデータベースが使用されます) |
すべての MySQL 5.6 ベースリリース |
|
ホストおよびオプションポートを host[:port] として指定します |
すべての MySQL 5.6 ベースリリース |
|
接続するソケットを指定します |
すべての MySQL 5.6 ベースリリース |
|
MySQL ユーザー名を指定します |
すべての MySQL 5.6 ベースリリース |
|
MySQL ユーザーのパスワードを指定します |
すべての MySQL 5.6 ベースリリース |
|
出力形式 (テキストまたは HTML) を設定します |
すべての MySQL 5.6 ベースリリース |
|
テーブルのカンマ区切りリスト内のテーブルをスキップします |
すべての MySQL 5.6 ベースリリース |
|
データベースのカンマ区切りリスト内のデータベースをスキップします |
すべての MySQL 5.6 ベースリリース |
|
データベースへのすべてのクエリーを指定したファイルに保存します |
すべての MySQL 5.6 ベースリリース |
|
指定したファイルからすべてのクエリーをロードします。データベースに接続しません |
すべての MySQL 5.6 ベースリリース |
|
一意インデックスサイズ計算を処理するテーブルを指定します |
すべての MySQL 5.6 ベースリリース |
使用法
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]
デフォルトでは、このユーティリティーはサーバー上のすべてのデータベースを分析しようとします。--database
オプションを使用すると、単一データベースを指定できます。デフォルト動作を明示的に指定するには、データベースの名前に ALL
を使用します。1 つ以上のデータベースを除外するには、--excludedbs
オプションを使用して、スキップするデータベース名のカンマ区切りのリストを指定します。同様に、特定のテーブルをスキップするには、オプションの --excludetables
オプションに続けて、それらの名前をカンマで区切ってリストします。ホスト名を指定するには、--hostname
を使用します。デフォルトは localhost
です。ホストに加えてポートを指定するには、--hostname
の値に host
:port
形式を使用します。デフォルトのポート番号は 3306 です。必要に応じて、ソケットも指定できます。デフォルトは /var/lib/mysql.sock
です。MySQL のユーザー名およびパスワードは、表示されている対応するオプションで指定できます。出力の形式を制御するには、--format
オプションを使用します。これには、値 html
または text
を指定でき、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
に送られます)。
このスクリプトの出力には次の情報が含まれています。
分析されるテーブルを収容するために必要な
DataMemory
、IndexMemory
、MaxNoOfTables
、MaxNoOfAttributes
、MaxNoOfOrderedIndexes
、MaxNoOfUniqueHashIndexes
、およびMaxNoOfTriggers
構成パラメータの最小値。データベースに定義されているすべてのテーブル、属性、順序付けされたインデックス、および一意のハッシュインデックスのメモリー要件。
テーブルおよびテーブル行ごとに必要な
IndexMemory
およびDataMemory
。