これは、Ubuntu Online、Fedora Online、Windows オンライン エミュレーター、または MAC OS オンライン エミュレーターなどの複数の無料オンライン ワークステーションの XNUMX つを使用して、OnWorks 無料ホスティング プロバイダーで実行できるコマンド myisampack です。
プログラム:
NAME
myisampack - 圧縮された読み取り専用 MyISAM テーブルを生成します
SYNOPSIS
マイサンパック [オプション] file_name ...
DESCRIPTION
この マイサンパック ユーティリティは MyISAM テーブルを圧縮します。 マイサンパック それぞれを圧縮することで動作します
表の列を個別に参照してください。 いつもの、 マイサンパック データ ファイルを 40% から 70% にパックします。
後でテーブルが使用されるとき、サーバーは必要な情報をメモリに読み取ります。
列を解凍します。 これにより、個々のアクセス時のパフォーマンスが大幅に向上します。
圧縮を解除する必要があるのは XNUMX 行のみであるためです。
MySQL は、圧縮テーブルでメモリ マッピングを実行できる場合は mmap() を使用します。 mmap() の場合
が機能しない場合、MySQL は通常のファイル読み取り/書き込み操作に戻ります。
以下の点に注意してください:
・もし mysqldを サーバーが外部ロックを無効にして呼び出されました。これは良い考えではありません
呼び出す マイサンパック パッキング中にサーバーによってテーブルが更新される可能性がある場合
プロセス。 サーバーを停止した状態でテーブルを圧縮するのが最も安全です。
· テーブルをパックすると、読み取り専用になります。 これは一般的に意図されています(次のような場合)
CD 上のパックされたテーブルにアクセスする)。
· マイサンパック パーティション化されたテーブルはサポートされていません。
呼び出します マイサンパック このような:
シェル> マイサンパック [オプション] file_name ...
各ファイル名の引数は、インデックス (.MYI) ファイルの名前である必要があります。 あなたがその中にいない場合は、
データベース ディレクトリの場合は、ファイルへのパス名を指定する必要があります。 許容されるのは、
.MYI 拡張子は省略します。
テーブルを圧縮した後、 マイサンパック、あなたが使うべきです ミイサムチク -rq それを再構築する
インデックス。 ミイサムチクとします。
マイサンパック は次のオプションをサポートします。 また、オプション ファイルを読み取り、
セクション4.2.7「影響を与えるコマンドラインオプション」で説明されているそれらを処理するためのオプション
オプションファイルの処理」。
· - 助けて, -?
ヘルプメッセージを表示して終了します。
· - バックアップ, -b
次の名前を使用して、各テーブルのデータ ファイルのバックアップを作成します。 テーブル名。古い。
· --character-sets-dir =path
文字セットがインストールされているディレクトリ。 セクション10.5「文字セット」を参照してください。
構成"。
· -デバッグ[=デバッグオプション], -# [デバッグオプション]
デバッグログを書き込みます。 典型的な デバッグオプション 文字列はd:t:o、file_name。 デフォルト
はd:t:oです。
· - 力, -f
元よりも大きくなったり、
以前の呼び出しからの中間ファイル マイサンパック 存在します。 (マイサンパック 作成します。
という名前の中間ファイル テーブル名圧縮中にデータベース ディレクトリ内の .TMD
テーブル。 殺したら マイサンパック.TMD ファイルが削除されない可能性があります。) 通常、
マイサンパック 見つかった場合はエラーで終了します テーブル名.TMD が存在します。 と - 力,
マイサンパック とにかくテーブルを詰めます。
· --参加=big_tbl_name, -j big_tbl_name
コマンドラインで指定されたすべてのテーブルを単一のパックされたテーブルに結合します。 big_tbl_name。 すべて
結合するテーブル しなければなりません 同一の構造 (同じ列名と
タイプ、同じインデックスなど)。
big_tbl_name 結合操作の前に存在してはなりません。 という名前のすべてのソーステーブル
マージされるコマンドライン big_tbl_name 存在しなければなりません。 ソーステーブルが読み取られます
結合操作用ですが、変更されていません。 結合操作では .frm は作成されません
ファイル big_tbl_nameしたがって、結合操作が完了したら、.frm ファイルを次の場所からコピーします。
ソーステーブルの XNUMX つを指定し、それに名前を付けます big_tbl_name.frm。
· - 静けさ, -s
サイレントモード。 エラーが発生した場合にのみ出力を書き込みます。
· - テスト, -t
実際にテーブルを梱包するのではなく、テスト梱包するだけにしてください。
· --tmpdir =path, -T path
指定されたディレクトリを場所として使用します。 マイサンパック 一時ファイルを作成します。
· -詳細, -v
詳細モード。 梱包作業の進行状況とその内容についての情報を書き込みます。
結果。
· - バージョン, -V
バージョン情報を表示して終了します。
· - 待つ, -w
テーブルが使用中の場合は、待ってから再試行してください。 もし mysqldを サーバーは外部で呼び出されました
ロックが無効になっています。呼び出すことはお勧めできません。 マイサンパック テーブルがそうなる可能性がある場合
梱包プロセス中にサーバーによって更新されます。
次の一連のコマンドは、一般的なテーブル圧縮セッションを示しています。
シェル> ls -l 駅。*
-rw-rw-r-- 1 monty my 994128 17 月 19 日 00:XNUMX station.MYD
-rw-rw-r-- 1 monty my 53248 17 月 19 日 00:XNUMX station.MYI
-rw-rw-r-- 1 モンティ マイ 5767 17 月 19 日 00:XNUMX station.frm
シェル> ミイサムチク -dvv 駅
MyISAM ファイル: ステーション
イサムバージョン: 2
作成時間:1996-03-13 10:08:58
回復時間:1997-02-02 3:06:43
データレコード:1192削除されたブロック:0
データファイルパーツ:1192削除されたデータ:0
データファイルポインタ(バイト):2キーファイルポインタ(バイト):2
データファイルの最大長:54657023キーファイルの最大長:33554431
レコード長:834
レコード形式: 固定長
テーブルの説明:
キー開始 Len インデックス タイプ ルート ブロックサイズ Rec/key
1 2 4 一意の符号なしロング 1024 1024 1
2 32 30 の乗数。 テキスト 10240 1024 1
フィールド開始長タイプ
1 1 1
2 2 4
3 6 4
4 10 1
5 11 20
6 31 1
7 32 30
8 62 35
9 97 35
10 132 35
11 167 4
12 171 16
13 187 35
14 222 4
15 226 16
16 242 20
17 262 20
18 282 20
19 302 30
20 332 4
21 336 4
22 340 1
23 341 8
24 349 8
25 357 8
26 365 2
27 367 2
28 369 4
29 373 4
30 377 1
31 378 2
32 380 8
33 388 4
34 392 4
35 396 4
36 400 4
37 404 1
38 405 4
39 409 4
40 413 4
41 417 4
42 421 4
43 425 4
44 429 20
45 449 30
46 479 1
47 480 1
48 481 79
49 560 79
50 639 79
51 718 79
52 797 8
53 805 1
54 806 1
55 807 20
56 827 4
57 831 4
シェル> マイサンパック ステーション.MYI
圧縮ステーション.MYI: (1192 レコード)
- 統計の計算
ノーマル: 20 空スペース: 16 空ゼロ: 12 空フィル: 11
前スペース: 0 終了スペース: 12 テーブルルックアップ: 5 ゼロ: 7
元のツリー: 57 結合後: 17
- ファイルを圧縮する
87.14%
圧縮テーブルに対して myisamchk -rq を忘れずに実行してください
シェル> ls -l 駅。*
-rw-rw-r-- 1 monty my 127874 17 月 19 日 00:XNUMX station.MYD
-rw-rw-r-- 1 monty my 55296 17 月 19 日 04:XNUMX station.MYI
-rw-rw-r-- 1 モンティ マイ 5767 17 月 19 日 00:XNUMX station.frm
シェル> ミイサムチク -dvv 駅
MyISAM ファイル: ステーション
イサムバージョン: 2
作成時間:1996-03-13 10:08:58
回復時間:1997-04-17 19:04:26
データレコード:1192削除されたブロック:0
データファイルパーツ:1192削除されたデータ:0
データファイルポインタ(バイト):3キーファイルポインタ(バイト):1
データファイルの最大長:16777215キーファイルの最大長:131071
レコード長:834
レコード形式: 圧縮
テーブルの説明:
キー開始 Len インデックス タイプ ルート ブロックサイズ Rec/key
1 2 4 一意の符号なしロング 10240 1024 1
2 32 30 の乗数。 テキスト 54272 1024 1
フィールド開始長さのタイプ ハフツリー ビット
1 1 1 定数 1 0
2 2 4 ゼロフィル(1)2 9
3 6 4 ゼロなし、 ゼロフィル(1)2 9
4 10 1 3 9
5 11 20 テーブルルックアップ 4 0
6 31 1 3 9
7 32 30 エンドスペースなし、常にではない 5 9
8 62 35 エンドスペースなし、not_always、空なし 6 9
9 97 35 空なし 7 9
10 132 35 エンドスペースなし、not_always、空なし 6 9
11 167 4 ゼロフィル(1)2 9
12 171 16 エンドスペースなし、not_always、空なし 5 9
13 187 35 エンドスペースなし、not_always、空なし 6 9
14 222 4 ゼロフィル(1)2 9
15 226 16 エンドスペースなし、not_always、空なし 5 9
16 242 20 エンドスペースなし、常にではない 8 9
17 262 20 エンドスペースなし、空なし 8 9
18 282 20 エンドスペースなし、空なし 5 9
19 302 30 エンドスペースなし、空なし 6 9
20 332 4 常にゼロ 2 9
21 336 4 常にゼロ 2 9
22 340 1 3 9
23 341 8 テーブルルックアップ 9 0
24 349 8 テーブルルックアップ 10 0
25 357 8 常にゼロ 2 9
26 365 2 2 9
27 367 2 ゼロなし、 ゼロフィル(1)2 9
28 369 4 ゼロなし、 ゼロフィル(1)2 9
29 373 4 テーブルルックアップ 11 0
30 377 1 3 9
31 378 2 ゼロなし、 ゼロフィル(1)2 9
32 380 8 ゼロなし 2 9
33 388 4 常にゼロ 2 9
34 392 4 テーブルルックアップ 12 0
35 396 4 ゼロなし、 ゼロフィル(1)13 9
36 400 4 ゼロなし、 ゼロフィル(1)2 9
37 404 1 2 9
38 405 4 ゼロなし 2 9
39 409 4 常にゼロ 2 9
40 413 4 ゼロなし 2 9
41 417 4 常にゼロ 2 9
42 421 4 ゼロなし 2 9
43 425 4 常にゼロ 2 9
44 429 20 空なし 3 9
45 449 30 空なし 3 9
46 479 1 14 4
47 480 1 14 4
48 481 79 エンドスペースなし、空なし 15 9
49 560 79 空なし 2 9
50 639 79 空なし 2 9
51 718 79 エンドスペースなし 16 9
52 797 8 空なし 2 9
53 805 1 17 1
54 806 1 3 9
55 807 20 空なし 3 9
56 827 4 ゼロなし、 ゼロフィル(2)2 9
57 831 4 ゼロなし、 ゼロフィル(1)2 9
マイサンパック 次の種類の情報が表示されます。
・ 普通
追加のパッキングが使用されない列の数。
・ 空きスペース
スペースのみの値を含む列の数。 これらは XNUMX ビットを占めます。
· 空のゼロ
バイナリのゼロのみの値を含む列の数。 これらは XNUMX つを占めます
ビット。
· 空埋め
型の全バイト範囲を占有しない整数列の数。
小型タイプに変更されております。 たとえば、BIGINT 列 (XNUMX バイト) は次のようになります。
すべての値が -128 から XNUMX までの範囲にある場合、TINYINT 列 (XNUMX バイト) として格納されます。
127.
· プリスペース
先頭にスペースを付けて保存される XNUMX 進数の列の数。 この場合、それぞれ
value には、先頭のスペースの数のカウントが含まれます。
· エンドスペース
末尾に多くのスペースがある列の数。 この場合、それぞれの値は
末尾のスペースの数のカウントが含まれます。
・テーブルルックアップ
この列には少数の異なる値しか含まれておらず、それらは次の値に変換されました。
ハフマン圧縮前のENUM。
・ ゼロ
すべての値がゼロである列の数。
・オリジナルツリー
ハフマンツリーの初期数。
・入社後
ヘッダーを保存するためにツリーを結合した後に残る個別のハフマン ツリーの数
スペース。
テーブルが圧縮された後、フィールド行は次のように表示されます。 ミイサムチク -dvv include
各列に関する追加情報:
・ タイプ
データ型。 値には、次の記述子のいずれかを含めることができます。
・ 絶え間ない
すべての行の値は同じです。
・エンドスペースなし
エンドスペースを保存しないでください。
・エンドスペースなし、not_always
エンドスペースを保存したり、すべての値に対してエンドスペース圧縮を行ったりしないでください。
・エンドスペースなし、空なし
エンドスペースを保存しないでください。 空の値を保存しないでください。
・テーブルルックアップ
列はENUMに変換されました。
・zerofill(N)
最も重要な N 値のバイトは常に0であり、保存されません。
・ゼロなし
ゼロを保存しないでください。
・常にゼロ
ゼロ値はXNUMXビットを使用して格納されます。
・ハフツリー
列に関連付けられているハフマンツリーの番号。
・ビット
ハフマンツリーで使用されるビット数。
実行した後 マイサンパック、走らなければなりません ミイサムチク インデックスを再作成します。 現時点では、
また、インデックス ブロックをソートし、MySQL オプティマイザーに必要な統計を作成することもできます。
より効率的に作業できます:
シェル> ミイサムチク -rq --ソートインデックス -分析する テーブル名.MYI
パックされたテーブルを MySQL データベース ディレクトリにインストールした後、次のことを行う必要があります。
実行します mysqladminは フラッシュテーブル 強制的に mysqldを 新しいテーブルの使用を開始します。
パックされたテーブルを解凍するには、 -開梱 オプション ミイサムチク.
COPYRIGHT
Copyright©1997、2014、Oracleおよび/またはその関連会社。 全著作権所有。
このドキュメントはフリーソフトウェアです。 あなたはそれを再配布および/またはそれを変更することができます
Free SoftwareFoundationによって発行されたGNUGeneral PublicLicenseの条件。
ライセンスのバージョン2。
このドキュメントは、役立つことを期待して配布されていますが、何もありません
保証; 商品性または特定の適合性の黙示の保証もありません
目的。 詳細については、GNU General PublicLicenseを参照してください。
プログラムと一緒にGNUGeneral PublicLicenseのコピーを受け取っているはずです。
そうでない場合は、Free Software Foundation、Inc.、51 Franklin Street、Fifth Floor、
ボストン、マサチューセッツ02110-1301米国または参照 http://www.gnu.org/licenses/.
onworks.net サービスを使用してオンラインで myisampack を使用する