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