これは、Ubuntu Online、Fedora Online、Windowsオンラインエミュレーター、MACOSオンラインエミュレーターなどの複数の無料オンラインワークステーションのXNUMXつを使用してOnWorks無料ホスティングプロバイダーで実行できるコマンドmyisamchkです。
プログラム:
NAME
myisamchk-MyISAMテーブルメンテナンスユーティリティ
SYNOPSIS
ミイサムチク [オプション] テーブル名 ...
DESCRIPTION
当学校区の ミイサムチク ユーティリティは、データベーステーブルに関する情報を取得したり、チェック、修復、または
それらを最適化します。 ミイサムチク MyISAMテーブル(.MYDおよび.MYIファイルを含むテーブル)で動作します
データとインデックスを保存するため)。
CHECKTABLEステートメントとREPAIRTABLEステートメントを使用して、MyISAMをチェックおよび修復することもできます。
テーブル。 セクション13.7.2.2「CHECKTABLE構文」およびセクション13.7.2.5「REPAIRTABLE」を参照してください。
構文"。
の用法 ミイサムチク パーティションテーブルではサポートされていません。
あぶない
テーブルの修復操作を実行する前に、テーブルのバックアップを作成することをお勧めします。
状況によっては、操作によってデータが失われる可能性があります。 考えられる原因は次のとおりです
ただし、ファイルシステムエラーに限定されません。
呼び出します ミイサムチク このような:
シェル> ミイサムチク [オプション] テーブル名 ...
当学校区の オプション 欲しいものを指定してください ミイサムチク する。 それらについて以下に説明します
セクション。 を呼び出すことでオプションのリストを取得することもできます ミイサムチク - 助けて.
オプションなしで、 ミイサムチク デフォルトの操作としてテーブルをチェックするだけです。 詳細を取得するには
情報または伝える ミイサムチク 修正措置を講じるには、説明されているようにオプションを指定します
次の議論で。
テーブル名 確認または修復するデータベーステーブルです。 実行した場合 ミイサムチク どこか
データベースディレクトリ以外では、データベースディレクトリへのパスを指定する必要があります。
なぜなら ミイサムチク データベースがどこにあるのかわかりません。 実際には、 ミイサムチク
実際に作業しているファイルがデータベースディレクトリにあるかどうかを気にします。
データベーステーブルに対応するファイルを他の場所にコピーして、
そこでそれらに対して回復操作を実行します。
上のいくつかのテーブルに名前を付けることができます ミイサムチク 必要に応じてコマンドライン。 あなたもすることができます
インデックスファイル(.MYIサフィックスが付いたファイル)に名前を付けてテーブルを指定します。 これにより、
パターン*.MYIを使用して、ディレクトリ内のすべてのテーブルを指定します。 たとえば、あなたが
データベースディレクトリでは、次のようにそのディレクトリ内のすべてのMyISAMテーブルを確認できます。
シェル> ミイサムチク * .MYI
データベースディレクトリにいない場合は、次のように指定することで、そこにあるすべてのテーブルを確認できます。
ディレクトリへのパス:
シェル> ミイサムチク / path / to / database_dir /* .MYI
パスを指定してワイルドカードを指定することで、すべてのデータベースのすべてのテーブルを確認することもできます。
MySQLデータディレクトリ:
シェル> ミイサムチク / path / to / datadir / * / *.MYI
すべてのMyISAMテーブルをすばやく確認するための推奨される方法は次のとおりです。
シェル> ミイサムチク - 静けさ - 速い / path / to / datadir / * / *.MYI
すべてのMyISAMテーブルをチェックして、破損しているテーブルを修復する場合は、
次のコマンド:
シェル> ミイサムチク - 静けさ - 力 - 速い --更新状態 \
--key_buffer_size = 64M --myisam_sort_buffer_size = 64M \
--read_buffer_size = 1M --write_buffer_size = 1M \
/ path / to / datadir / * / *.MYI
このコマンドは、64MB以上の空きがあることを前提としています。 メモリの詳細については
との割り当て ミイサムチク、「MYISAMCHKMEMORYUSAGE」というセクションを参照してください。
使用に関する追加情報について ミイサムチク、セクション7.6「MyISAMテーブル」を参照してください
メンテナンスとクラッシュリカバリ」。
重要
我が国 しなければなりません 確保 それ いいえ その他 プログラム is テーブル while フォーム ランニング
ミイサムチク。 これを行う最も効果的な方法は、MySQLサーバーをシャットダウンすることです。
ランニング ミイサムチク、またはすべてのテーブルをロックする ミイサムチク で使用されています。
それ以外の場合は、実行すると ミイサムチク、次のエラーメッセージが表示される場合があります。
警告:クライアントはテーブルを適切に使用しているか、閉じていません
これは、別の人によって更新されたテーブルをチェックしようとしていることを意味します
プログラム(など mysqldを サーバー)ファイルをまだ閉じていないか、死んでいる
ファイルを適切に閉じないと、ファイルが破損する可能性があります
以上のMyISAMテーブル。
If mysqldを が実行されている場合は、テーブルの変更を強制的にフラッシュする必要があります。
FLUSHTABLESを使用してメモリにバッファリングされたままです。 次に、誰もいないことを確認する必要があります
実行中にテーブルを使用する ミイサムチク
ただし、この問題を回避する最も簡単な方法は、代わりにCHECKTABLEを使用することです。
ミイサムチク テーブルをチェックします。 13.7.2.2項「CHECKTABLE構文」を参照してください。
ミイサムチク コマンドラインまたはで指定できる次のオプションをサポートします
オプションファイルの[myisamchk]グループ。 MySQLで使用されるオプションファイルについての情報
プログラムについては、4.2.6項「オプションファイルの使用」を参照してください。
ミイサムチク 全般的な OPTIONS
このセクションで説明するオプションは、あらゆるタイプのテーブルメンテナンスに使用できます
によって実行される操作 ミイサムチク。 これに続くセクションでは、次のオプションについて説明します。
テーブルのチェックや修復など、特定の操作にのみ関係します。
· - 助けて, -?
ヘルプメッセージを表示して終了します。 オプションは、操作のタイプごとにグループ化されています。
· - ヘルプ, -H
ヘルプメッセージを表示して終了します。 オプションは単一のリストに表示されます。
· --debug =デバッグオプション, -# デバッグオプション
デバッグログを書き込みます。 典型的な デバッグオプション 文字列はd:t:o、file_name。 デフォルト
d:t:o、/ tmp/myisamchk.traceです。
· --defaults-extra-file =file_name
このオプションファイルは、グローバルオプションファイルの後で、(Unixでは)ユーザーの前に読んでください。
オプションファイル。 ファイルが存在しないか、他の方法でアクセスできない場合、エラーが発生します。
file_name 相対パスとして指定されている場合は、現在のディレクトリを基準にして解釈されます
フルパス名ではなく名前。
· --defaults-file =file_name
指定されたオプションファイルのみを使用してください。 ファイルが存在しないか、そうでない場合
アクセスできない場合、エラーが発生します。 file_name 現在の相対的な解釈
フルパス名ではなく相対パス名として指定されている場合は、ディレクトリ。
· --defaults-group-suffix =STR
通常のオプショングループだけでなく、通常の名前と
の接尾辞 STR。 例えば、 ミイサムチク 通常、[myisamchk]グループを読み取ります。 の場合
--defaults-group-suffix = _other オプションが与えられ、 ミイサムチク また、
[myisamchk_other]グループ。
· --no-デフォルト
オプションファイルを読み取らないでください。 不明なオプションの読み取りが原因でプログラムの起動に失敗した場合
オプションファイルから、 --no-デフォルト それらが読み取られないようにするために使用できます。
例外は、.mylogin.cnfファイルが存在する場合は、すべての場合に読み取られることです。 この
次の場合でも、コマンドラインよりも安全な方法でパスワードを指定できます。
--no-デフォルト 使用されている。 (.mylogin.cnfはによって作成されます mysql_config_editor ユーティリティ。
詳細はこちら: mysql_config_editor(1)。)
· --print-defaults
プログラム名と、オプションファイルから取得したすべてのオプションを印刷します。
· - 静けさ, -s
サイレントモード。 エラーが発生した場合にのみ出力を書き込みます。 使用できます -s XNUMX回(-NS) 作る
ミイサムチク とても静かです。
· -詳細, -v
冗長モード。 プログラムの機能に関する詳細情報を印刷します。 これは使用できます
-d -e。 使用 -v 複数回 (-vv, -vvv)さらに多くの出力が得られます。
· - バージョン, -V
バージョン情報を表示して終了します。
· - 待つ, -w
テーブルがロックされている場合にエラーで終了するのではなく、テーブルがロックされるまで待ちます
続行する前にロックを解除します。 実行している場合 mysqldを 外部ロックが無効になっている場合、
テーブルは別の人だけがロックできます ミイサムチク
次の変数を使用して設定することもできます --変数名=値 構文:
┌────────────────────────┬────────────────────┐
│変数 │ デフォルト 値 │
├────────────────────────┼────────────────────┤
│decode_bits│9│
├────────────────────────┼────────────────────┤
│ft_max_word_len│バージョン依存│
├────────────────────────┼────────────────────┤
│ft_min_word_len│4│
├────────────────────────┼────────────────────┤
│ft_stopword_file│組み込みリスト│
├────────────────────────┼────────────────────┤
│key_buffer_size│523264│
├────────────────────────┼────────────────────┤
│myisam_block_size│1024│
├────────────────────────┼────────────────────┤
│myisam_sort_key_blocks│16│
├────────────────────────┼────────────────────┤
│read_buffer_size│262136│
├────────────────────────┼────────────────────┤
│sort_buffer_size│2097144│
├────────────────────────┼────────────────────┤
│sort_key_blocks│16│
├────────────────────────┼────────────────────┤
│stats_method│nulls_unequal│
├────────────────────────┼────────────────────┤
│write_buffer_size│262136│
└────────────────────────┴────────────────────┘
可能性 ミイサムチク 変数とそのデフォルト値は、次のコマンドで調べることができます。 ミイサムチク
- 助けて:
sort_buffer_sizeは、キーをソートすることによってキーが修復されるときに使用されます。これは通常のことです。
使用する場合 - 回復します。 MySQL 5.6.9以降、myisam_sort_buffer_sizeは
sort_buffer_sizeの別名。 myisam_sort_buffer_sizeは
sort_buffer_sizeは、その名前がmyisam_sort_buffer_sizeサーバーシステムに対応しているためです。
同様の意味を持つ変数。 sort_buffer_sizeは非推奨と見なす必要があります。
key_buffer_sizeは、テーブルをチェックするときに使用されます。 --拡張チェック または
キーは、テーブルに行ごとにキーを挿入することによって修復されます(通常の場合のように)
挿入)。 キーバッファを介した修復は、次の場合に使用されます。
・ あなたが使う --安全な回復.
・キーの並べ替えに必要な一時ファイルは、次の場合のXNUMX倍以上になります。
キーファイルを直接作成します。 これは、キー値が大きい場合によくあります。
CHAR、VARCHAR、またはTEXT列の場合、ソート操作は
進行中にキー値を完成させます。 一時的なスペースがたくさんあり、できる場合
力 ミイサムチク 並べ替えて修復するには、 --ソート-回復 オプションを選択します。
キーバッファを介した修復は、並べ替えを使用するよりもはるかに少ないディスクスペースで済みますが、
また、はるかに遅い。
より迅速な修復が必要な場合は、key_buffer_size変数とmyisam_sort_buffer_size変数を設定します
使用可能なメモリの約25%に。 両方の変数を大きな値に設定できます。
一度に使用されるのはそのうちのXNUMXつだけです。
myisam_block_sizeは、インデックスブロックに使用されるサイズです。
stats_methodは、インデックス統計収集でNULL値がどのように扱われるかに影響します。
-分析する オプションが与えられます。 myisam_stats_methodシステム変数のように機能します。 ために
詳細については、セクション5.1.4「サーバー」のmyisam_stats_methodの説明を参照してください。
「システム変数」、およびセクション8.3.7「InnoDBおよびMyISAMインデックス統計の収集」。
ft_min_word_lenおよびft_max_word_lenは、の最小および最大語長を示します。
MyISAMテーブルのFULLTEXTインデックス。 ft_stopword_fileは、ストップワードファイルに名前を付けます。 これらの必要性
以下の状況で設定します。
あなたが使用している場合 ミイサムチク テーブルインデックスを変更する操作(修復など)を実行する
または分析)、FULLTEXTインデックスは、デフォルトのフルテキストパラメータ値を使用して再構築されます
特に指定しない限り、最小および最大語長とストップワードファイル。
これにより、クエリが失敗する可能性があります。
これらのパラメータはサーバーだけが知っているため、問題が発生します。 ではない
MyISAMインデックスファイルに保存されます。 最小値を変更した場合、または
サーバー内の最大ワード長またはストップワードファイルには、同じft_min_word_lenを指定します。
ft_max_word_len、およびft_stopword_fileの値を ミイサムチク あなたが使用する mysqldを。 のために
たとえば、最小単語長を3に設定した場合、次のコマンドでテーブルを修復できます。
ミイサムチク このような:
シェル> ミイサムチク - 回復します --ft_min_word_len = 3 テーブル名.MYI
それを確保するために ミイサムチク サーバーはフルテキストパラメータに同じ値を使用します。
オプションファイルの[mysqld]セクションと[myisamchk]セクションの両方にそれぞれを配置できます。
[mysqldを]
ft_min_word_len = 3
[mysamchk]
ft_min_word_len = 3
使用する代わりに ミイサムチク REPAIR TABLE、ANALYZE TABLE、OPTIMIZEを使用することです
TABLE、またはALTERTABLE。 これらのステートメントは、サーバーによって実行されます。
使用する適切なフルテキストパラメータ値。
ミイサムチク チェック OPTIONS
ミイサムチク テーブルチェック操作の次のオプションをサポートします。
· - チェック, -c
表にエラーがないか確認してください。 オプションを指定しない場合、これがデフォルトの操作です
操作タイプを明示的に選択します。
· -チェックのみ-変更, -C
前回のチェック以降に変更されたテーブルのみをチェックしてください。
· --拡張チェック, -e
表をよく確認してください。 テーブルに多くのインデックスがある場合、これは非常に遅くなります。
このオプションは、極端な場合にのみ使用してください。 通常は、 ミイサムチク or ミイサムチク
-中チェック テーブルにエラーがあるかどうかを判断できる必要があります。
使用している場合 --拡張チェック 十分なメモリがあり、key_buffer_sizeを設定します
変数を大きな値にすると、修復操作の実行が速くなります。
テーブル修復オプションのこのオプションの説明も参照してください。
出力フォーマットの説明については、「テーブルの取得」というセクションを参照してください。
MYISAMCHKの情報」。
· - 速い, -F
正しく閉じられていないテーブルのみをチェックしてください。
· - 力, -f
次の場合に自動的に修復操作を実行します ミイサムチク テーブル内のエラーを検出します。 The
修復タイプは、で指定されたものと同じです。 - 回復します or -r オプションを選択します。
· - 情報, -i
チェックされるテーブルに関する情報統計を出力します。
· -中チェック, -m
よりも速いチェックを行う --拡張チェック 手術。 これは99.99%しか見つかりません
すべてのエラー。ほとんどの場合、これで十分です。
· -読み取り専用, -T
テーブルをチェック済みとしてマークしないでください。 これは、使用する場合に便利です ミイサムチク テーブルをチェックする
これは、ロックを使用しない他のアプリケーションで使用されています。 mysqldを
外部ロックを無効にして実行した場合。
· --更新状態, -U
.MYIファイルに情報を保存して、テーブルがいつチェックされたか、および
テーブルがクラッシュしました。 これは、 -チェックのみ-変更
オプションですが、次の場合はこのオプションを使用しないでください。 mysqldを サーバーはテーブルを使用しており、
外部ロックを無効にして実行しています。
ミイサムチク 修復 OPTIONS
ミイサムチク テーブル修復操作(実行される操作)の次のオプションをサポートします
次のようなオプションの場合 - 回復します or --安全な回復 与えられます):
· - バックアップ, -B
.MYDファイルのバックアップを次のように作成します file_name-時間.BAK
· --character-sets-dir =path
文字セットがインストールされているディレクトリ。 セクション10.5「文字セット」を参照してください。
構成"。
· --正しい-チェックサム
テーブルのチェックサム情報を修正してください。
· --data-file-length =LEN, -D LEN
データファイルの最大長(「満杯」のときにデータファイルを再作成する場合)。
· --拡張チェック, -e
データファイルからすべての可能な行を回復しようとする修復を実行します。 通常は、
これはまた、多くのガベージ行を見つけます。 次の場合を除いて、このオプションを使用しないでください
絶望的。
テーブルチェックオプションのこのオプションの説明も参照してください。
出力フォーマットの説明については、「テーブルの取得」というセクションを参照してください。
MYISAMCHKの情報」。
· - 力, -f
古い中間ファイル(次のような名前のファイル)を上書きします テーブル名.TMD)の代わりに
中止します。
· --keys-used =ヴァル, -k ヴァル
ミイサムチク、オプション値は、更新するインデックスを示すビット値です。
オプション値の各バイナリビットはテーブルインデックスに対応し、最初の
インデックスはビット0です。オプション値0は、すべてのインデックスの更新を無効にします。
より高速な挿入を取得するために使用されます。 非アクティブ化されたインデックスは、を使用して再アクティブ化できます ミイサムチク
-r.
· --no-シンボリックリンク, -l
シンボリックリンクをたどらないでください。 通常は ミイサムチク シンボリックリンクがそのテーブルを修復します
に指差す。 4.0以降のバージョンでは、このオプションはMySQL4.0では存在しません。
修復操作中にシンボリックリンクを削除しないでください。
· --max-record-length =LEN
指定された長さよりも大きい行をスキップする場合 ミイサムチク 保持するメモリを割り当てることができません
それら。
· --並列回復, -p
と同じテクニックを使用します -r -n、ただし、を使用してすべてのキーを並行して作成します
異なるスレッド。 この is ベータ品質 コード。 at 自分の 危険!
· - 素早い, -q
データファイルではなく、インデックスファイルのみを変更することにより、より迅速な修復を実現します。 あなたはできる
このオプションをXNUMX回指定すると、強制されます ミイサムチク 場合に応じて元のデータファイルを変更する
重複キーの。
· - 回復します, -r
一意ではない一意のキーを除いて、ほとんどすべての問題を修正できる修復を実行します
(これは、MyISAMテーブルではほとんど発生しないエラーです)。 回復したい場合
テーブル、これは最初に試すオプションです。 試してみてください --安全な回復 場合のみ
ミイサムチク テーブルを使用して回復できないことを報告します - 回復します。 (ありそうもないことに
その場合 - 回復します 失敗すると、データファイルはそのまま残ります。)
大量のメモリがある場合は、myisam_sort_buffer_sizeの値を増やす必要があります。
· --安全な回復, -o
すべての行を順番に読み取る古いリカバリ方法を使用して修復を実行し、
見つかった行に基づいてすべてのインデックスツリーを更新します。 これは桁違いに遅いです
より - 回復します、しかし、非常にありそうもないいくつかのケースを処理できます - 回復します できません。
この回復方法はまた、はるかに少ないディスクスペースを使用します - 回復します。 通常、あなたは
最初に使用して修復する必要があります - 回復します、そして --安全な回復 場合のみ - 回復します
失敗します。
大量のメモリがある場合は、key_buffer_sizeの値を増やす必要があります。
· --set-character-set =名
テーブルインデックスで使用される文字セットを変更します。 このオプションはに置き換えられました
--set-collation MySQL5.0.3で。
· --set-collation =名
テーブルインデックスの並べ替えに使用する照合を指定します。 文字セット名は
照合名の最初の部分によって示されます。
· --ソート-回復, -n
強 ミイサムチク 一時ファイルがキーを解決する場合でも、並べ替えを使用してキーを解決する
非常に大きくなります。
· --tmpdir =path, -t path
一時ファイルの保存に使用されるディレクトリのパス。 これが設定されていない場合、
ミイサムチク TMPDIR環境変数の値を使用します。 --tmpdir に設定できます
作成のためにラウンドロビン方式で連続して使用されるディレクトリパスのリスト
一時ファイル。 ディレクトリ名の間の区切り文字は、上のコロン(“:”)です。
UnixとWindowsのセミコロン(「;」)。
· -開梱, -u
で詰め込まれたテーブルを開梱します マイサンパック.
その他 ミイサムチク OPTIONS
ミイサムチク テーブルのチェックと修復以外のアクションについて、次のオプションをサポートします。
· -分析する, -a
キー値の分布を分析します。 これにより、
オプティマイザーに参加して、テーブルを結合する順序とテーブルを結合する順序をより適切に選択します
使用するインデックス。 キー配布に関する情報を取得するには、
ミイサムチク - 説明 -詳細 テーブル名 コマンドまたはSHOWINDEXFROM テーブル名
声明。
· --block-search =オフセット, -b オフセット
指定されたオフセットのブロックが属するレコードを検索します。
· - 説明, -d
テーブルに関する説明情報を印刷します。 の指定 -詳細 オプション
XNUMX回またはXNUMX回は、追加情報を生成します。 「テーブルの入手」というセクションを参照してください。
MYISAMCHKの情報」。
· --set-auto-increment [=値], -NS[値]
新しいレコードのAUTO_INCREMENT番号付けを、指定された値(またはそれ以上、
AUTO_INCREMENT値がこれほど大きい既存のレコードがある場合)。 もしも 値 ではありません
指定された、新しいレコードのAUTO_INCREMENT番号は、最大値で始まります
現在テーブルにあり、プラスXNUMX。
· --ソートインデックス, -S
インデックスツリーブロックを高低順に並べ替えます。 これにより、シークが最適化され、テーブルが作成されます
インデックスをより高速に使用するスキャン。
· --sort-records =N, -R N
特定のインデックスに従ってレコードを並べ替えます。 これにより、データがはるかにローカライズされます
また、このインデックスを使用する範囲ベースのSELECTおよびORDERBY操作を高速化する場合があります。 (
このオプションを初めて使用してテーブルを並べ替えるときは、非常に時間がかかる場合があります。
テーブルのインデックス番号は、SHOW INDEXを使用します。これにより、テーブルのインデックスが同じ場所に表示されます。
それを注文する ミイサムチク それらを見ます。 インデックスには1から始まる番号が付けられています。
キーがパックされていない場合(PACK_KEYS = 0)、キーの長さは同じであるため、 ミイサムチク
レコードを並べ替えて移動します。インデックス内のレコードオフセットを上書きするだけです。 キーが
パック(PACK_KEYS = 1)、 ミイサムチク 最初にキーブロックを解凍してから、インデックスを再作成する必要があります
キーブロックを再度梱包します。 (この場合、インデックスの再作成はより高速です
各インデックスのオフセットを更新します。)
取得 表 情報 WITH ミイサムチク
MyISAMテーブルの説明またはその統計を取得するには、次のコマンドを使用します
ここ。 これらのコマンドからの出力については、このセクションの後半で説明します。
· ミイサムチク -d テーブル名
Active Runs ミイサムチク 「記述モード」でテーブルの記述を作成します。 始めたら
外部ロックが無効になっているMySQLサーバー、 ミイサムチク のエラーを報告する場合があります
実行中に更新されるテーブル。 ただし、 ミイサムチク 変更しません
記述モードのテーブルでは、データを破壊するリスクはありません。
· ミイサムチク -dv テーブル名
追加 -v runs ミイサムチク 詳細モードで、
テーブル。 追加する -v XNUMX回目は、さらに多くの情報を生成します。
· ミイサムチク -eis テーブル名
テーブルからの最も重要な情報のみを表示します。 この操作は遅いので
テーブル全体を読み取る必要があります。
· ミイサムチク -eiv テーブル名
これは -eis、しかし何が行われているのかを教えてくれます。
当学校区の テーブル名 引数は、MyISAMテーブルの名前またはそのインデックスの名前のいずれかです。
で説明されているように、ファイル ミイサムチク(1)。 多数 テーブル名 引数を与えることができます。
personという名前のテーブルの構造が次のようになっているとします。 (MAX_ROWSテーブルオプション
が含まれているので、例の出力から ミイサムチク 後で示すように、いくつかの値は
より小さく、出力フォーマットにより簡単に適合します。)
CREATETABLE人
(
id INT NOT NULL AUTO_INCREMENT、
苗字 VARCHAR(20)NOT NULL、
ファーストネーム VARCHAR(20)NOT NULL、
誕生日、
死亡日、
主キー(id)、
INDEX(last_name、first_name)、
INDEX(誕生)
)MAX_ROWS = 1000000;
また、テーブルに次のデータとインデックスファイルのサイズがあるとします。
-rw-rw ---- 1 mysql mysql 9347072 Aug 19 11:47 person.MYD
-rw-rw ---- 1 mysql mysql 6066176 Aug 19 11:47 person.MYI
の例 ミイサムチク -dvv 出力:
MyISAMファイル:人
レコード形式:パック
文字セット:latin1_swedish_ci(8)
ファイルバージョン:1
作成時間:2009-08-19 16:47:41
回復時間:2009-08-19 16:47:56
ステータス:チェック済み、分析済み、最適化されたキー
自動インクリメントキー:1最後の値:306688
データレコード:306688削除されたブロック:0
データファイルパーツ:306688削除されたデータ:0
データファイルポインタ(バイト):4キーファイルポインタ(バイト):3
データファイルの長さ:9347072キーファイルの長さ:6066176
データファイルの最大長:4294967294キーファイルの最大長:17179868159
レコード長:54
テーブルの説明:
キースタートレンインデックスタイプRec/keyRootブロックサイズ
1ユニークロング2
2乗算varcharプレフィックス6
27 20 ヴァルチャー 512
3 48multip。 uint3 NULL 24 306688 6065152
フィールド開始長NullposNullbitタイプ
1 1 1
2ゼロなし
3 6 21 可変長文字
4 27 21 可変長文字
5 48 3ゼロなし
6 51 3ゼロなし
情報の種類の説明 ミイサムチク 農産物はここにあります。 「キーファイル」
インデックスファイルを参照します。 「レコード」と「行」は同義語であり、「フィールド」と「列」も同様です。
表の説明の最初の部分には、次の値が含まれています。
・myISAMファイル
MyISAM(インデックス)ファイルの名前。
・記録フォーマット
テーブルの行を格納するために使用される形式。 上記の例では、固定長を使用しています。 他の
可能な値はCompressedおよびPackedです。 (パックはSHOWTABLEに対応します
STATUSは動的として報告します。)
・キャラクターセット
テーブルのデフォルトの文字セット。
・ファイルバージョン
MyISAM形式のバージョン。 現在常に1。
・作成時間
データファイルが作成されたとき。
・回復時間
インデックス/データファイルが最後に再構築された日時。
・ スターテス
テーブルステータスフラグ。 可能な値は、クラッシュ、オープン、変更、分析、最適化されます
キー、およびソートされたインデックスページ。
・自動インクリメントキー、最後の値
テーブルのAUTO_INCREMENT列に関連付けられているキー番号、および最新のもの
この列の生成値。 そのようなものがない場合、これらのフィールドは表示されません
コラム。
・データレコード
テーブルの行数。
・削除されたブロック
削除されたブロックのうち、まだ予約済みのスペースがいくつありますか。 テーブルを次のように最適化できます
このスペースを最小限に抑えます。 7.6.4項「MyISAMテーブルの最適化」を参照してください。
・データファイルパーツ
動的行形式の場合、これはデータブロックの数を示します。 のために
断片化された行のない最適化されたテーブル。これはデータレコードと同じです。
・削除されたデータ
再利用されていない削除済みデータがいくつあるか。 テーブルを次のように最適化できます
このスペースを最小限に抑えます。 7.6.4項「MyISAMテーブルの最適化」を参照してください。
・データファイルポインタ
データファイルポインタのサイズ(バイト単位)。 通常は2、3、4、または5バイトです。 多くの
テーブルは2バイトで管理されますが、これはまだMySQLから制御できません。 固定用
テーブルの場合、これは行アドレスです。 動的テーブルの場合、これはバイトアドレスです。
・キーファイルポインタ
インデックスファイルポインタのサイズ(バイト単位)。 通常は1、2、または3バイトです。 多くの
テーブルは2バイトで管理されますが、これはMySQLによって自動的に計算されます。 です
常にブロックアドレス。
・データファイルの最大長
テーブルデータファイルの長さ(バイト単位)。
・キーファイルの最大長
テーブルインデックスファイルの長さ(バイト単位)。
・レコード長
各行に必要なスペース(バイト単位)。
出力のテーブルの説明部分には、テーブル内のすべてのキーのリストが含まれています。 ために
各キー、 ミイサムチク いくつかの低レベルの情報を表示します。
・ 鍵
このキーの番号。 この値は、キーの最初の列にのみ表示されます。 これなら
値が欠落している場合、その行はaのXNUMX番目以降の列に対応します
複数列のキー。 例に示されているテーブルには、XNUMXつのテーブルがあります
XNUMX番目のインデックスの説明行。 これは、それが複数の部分であることを示しています
XNUMXつの部分からなるインデックス。
・ 始める
行のどこから、インデックスのこの部分が始まります。
・レン
インデックスのこの部分の長さ。 パックされた番号の場合、これは常に
柱の全長。 文字列の場合、全長より短い場合があります。
文字列列のプレフィックスにインデックスを付けることができるため、インデックス付き列。 の全長
マルチパートキーは、すべてのキーパーツのLen値の合計です。
・ 索引
キー値がインデックスに複数回存在できるかどうか。 可能な値は一意です
または乗算します。 (多数)。
・ タイプ
インデックスのこの部分のデータ型。 これはMyISAMデータ型であり、
可能な値は、パック、ストリップ、または空です。
・ 根
ルートインデックスブロックのアドレス。
・ブロックサイズ
各インデックスブロックのサイズ。 デフォルトではこれは1024ですが、値は次の場所で変更される可能性があります。
MySQLがソースからビルドされるときのコンパイル時。
・記録/キー
これは、オプティマイザーによって使用される統計値です。 行数を示します
このインデックスの値ごと。 一意のインデックスの値は常に1です。これは更新される可能性があります
テーブルがロードされた後(または大幅に変更された後) ミイサムチク -a。 これが更新されていない場合
まったく、デフォルト値の30が与えられています。
出力の最後の部分は、各列に関する情報を提供します。
・ 分野
列番号。
・ 始める
テーブル行内の列のバイト位置。
・ 長さ
列の長さ(バイト単位)。
・Nullpos、Nullbit
NULLになる可能性のある列の場合、MyISAMはNULL値をフラグとしてバイトに格納します。 依存する
null許容列がいくつあるかについては、これにXNUMXつ以上のバイトを使用できます。
目的。 Nullpos値とNullbit値は、空でない場合、どのバイトとビットを示します
列がNULLかどうかを示すフラグが含まれています。
NULLフラグを格納するために使用される位置とバイト数は、次の行に示されています。
フィールド1。これが、personテーブルにXNUMXつのフィールド行がある理由です。
たったXNUMX列。
・ タイプ
データ型。 値には、次の記述子のいずれかを含めることができます。
・ 絶え間ない
すべての行の値は同じです。
・エンドスペースなし
エンドスペースを保存しないでください。
・エンドスペースなし、not_always
エンドスペースを保存したり、すべての値に対してエンドスペース圧縮を行ったりしないでください。
・エンドスペースなし、空なし
エンドスペースを保存しないでください。 空の値を保存しないでください。
・テーブルルックアップ
列はENUMに変換されました。
・zerofill(N)
最も重要な N 値のバイトは常に0であり、保存されません。
・ゼロなし
ゼロを保存しないでください。
・常にゼロ
ゼロ値はXNUMXビットを使用して格納されます。
・ハフツリー
列に関連付けられているハフマンツリーの番号。
・ビット
ハフマンツリーで使用されるビット数。
テーブルがで圧縮されている場合、ハフツリーとビットフィールドが表示されます
マイサンパック。 見る マイサンパック(1)、この情報の例。
の例 ミイサムチク -eiv 出力:
MyISAMファイルの確認:person
データレコード:306688削除されたブロック:0
-ファイルサイズを確認してください
-レコードの削除チェーンを確認します
レコードリンクはありません
-キー削除チェーンを確認します
block_size 1024:
-インデックス参照を確認してください
-データレコード参照インデックスを確認します:1
キー:1:使用されるキーブロック:98%パック:0%最大レベル:3
-データレコード参照インデックスを確認します:2
キー:2:使用されるキーブロック:99%パック:97%最大レベル:3
-データレコード参照インデックスを確認します:3
キー:3:使用されるキーブロック:98%パック:-14%最大レベル:3
合計:使用されたキーブロック:98%パック済み:89%
-レコードとインデックス参照を確認します
*** LOTS OF 行 NUMBERS 削除されました ***
レコード:306688 M.レコード長:25パック:83%
使用されるレコードスペース:97%空のスペース:2%ブロック/レコード:1.00
レコードブロック:306688ブロックの削除:0
記録データ:7934464削除データ:0
失われたスペース:256512リンクデータ:1156096
ユーザー時間43.08、システム時間1.68
最大常駐セットサイズ0、統合常駐セットサイズ0
非物理ページフォールト0、物理ページフォールト0、スワップ0
ブロックイン0アウト7、メッセージイン0アウト0、シグナル0
自発的なコンテキストスイッチ0、非自発的なコンテキストスイッチ0
最大メモリ使用量:1046926バイト(1023k)
ミイサムチク -eiv 出力には次の情報が含まれます。
・データレコード
テーブルの行数。
・削除されたブロック
削除されたブロックのうち、まだ予約済みのスペースがいくつありますか。 テーブルを次のように最適化できます
このスペースを最小限に抑えます。 7.6.4項「MyISAMテーブルの最適化」を参照してください。
・ 鍵
キー番号。
・使用されるキーブロック
キーブロックの何パーセントが使用されているか。 テーブルが再編成されたばかりの場合
ミイサムチク、値は非常に高い(理論上の最大値に非常に近い)。
・パック
MySQLは、共通のサフィックスを持つキー値をパックしようとします。 これは、
CHAR列とVARCHAR列のインデックス。 同様の長いインデックス付き文字列の場合
左端のパーツ。これにより、使用するスペースを大幅に削減できます。 前に
たとえば、40番目のキーの長さは97バイトで、スペースをXNUMX%削減できます。
・最大レベル
このキーのBツリーの深さ。 キー値が長い大きなテーブルは高くなります
値。
・ 記録
テーブル内の行数。
・M.recordlength
行の平均の長さ。 これは、固定長のテーブルの正確な行の長さです
すべての行の長さが同じであるためです。
・パック
MySQLは、文字列の末尾からスペースを取り除きます。 パック値はパーセンテージを示します
これを行うことによって達成される節約の。
・使用されるレコードスペース
データファイルの何パーセントが使用されているか。
・ 空きスペース
データファイルの何パーセントが未使用です。
・ブロック/記録
行あたりの平均ブロック数(つまり、断片化された行が構成されるリンクの数)
の)。 固定形式のテーブルの場合、これは常に1.0です。 この値は、できるだけ近くにとどまる必要があります
可能な限り1.0。 大きくなりすぎる場合は、テーブルを再編成できます。 見る
セクション7.6.4「MyISAMテーブルの最適化」。
・レコードブロック
使用されるブロック(リンク)の数。 固定形式のテーブルの場合、これは
行の数。
・deleteblocks
削除されるブロック(リンク)の数。
・Recorddata
データファイルのバイト数が使用されています。
・削除されたデータ
データファイルの何バイトが削除されますか(未使用)。
・失われたスペース
行がより短い長さに更新されると、一部のスペースが失われます。 これはすべての合計です
そのような損失(バイト単位)。
・Linkdata
動的テーブル形式を使用する場合、行フラグメントはポインター(4から7)でリンクされます。
各バイト)。 Linkdataは、そのようなすべてのポインターによって使用されるストレージの量の合計です。
ミイサムチク MEMORY USAGE
実行するときは、メモリの割り当てが重要です ミイサムチク. ミイサムチク 使用するメモリは
そのメモリ関連の変数はに設定されます。 使用する場合 ミイサムチク 非常に大きい
テーブルでは、最初に使用するメモリの量を決定する必要があります。 デフォルトでは使用します
修理を行うのに約3MBしかありません。 より大きな値を使用することにより、 ミイサムチク 〜へ
より速く動作します。 たとえば、512 MBを超えるRAMを使用できる場合は、次を使用できます。
これらのようなオプション(指定する可能性のある他のオプションに加えて):
シェル> ミイサムチク --myisam_sort_buffer_size = 256M \
--key_buffer_size = 512M \
--read_buffer_size = 64M \
--write_buffer_size = 64M ...
使い方 --myisam_sort_buffer_size = 16M ほとんどの場合、おそらく十分です。
を注意 ミイサムチク TMPDIRの一時ファイルを使用します。 TMPDIRがメモリファイルを指している場合
システムでは、メモリ不足エラーが簡単に発生する可能性があります。 これが発生した場合は、 ミイサムチク
--tmpdir =path より多くのスペースがあるファイルシステム上にあるディレクトリを指定するオプション。
修理作業を行う場合、 ミイサムチク また、多くのディスク容量が必要です。
・データファイル(元のファイルとコピー)のXNUMX倍のサイズ。 このスペースはそうではありません
で修理する場合に必要 - 素早い; この場合、インデックスファイルのみが
再作成されました。 この スペース しなければなりません be 利用できます on 同じ file as オリジナル データ
file、コピーは元のディレクトリと同じディレクトリに作成されるため。
・古いインデックスファイルを置き換える新しいインデックスファイル用のスペース。 古いインデックスファイルは
修復操作の開始時に切り捨てられるため、通常はこのスペースを無視します。 これ
スペースは、元のデータファイルと同じファイルシステムで使用可能である必要があります。
・使用する場合 - 回復します or --ソート-回復 (ただし、使用時は不可 --安全な回復)、あなたが必要
ソート用のディスク上のスペース。 このスペースは一時ディレクトリに割り当てられます
(TMPDIRまたは --tmpdir =path)。 次の式は、
必要なスペース:
(maximum_key + row_pointer_length)* 行の数 * 2
キーの長さやキーの長さを確認できます row_pointer_length ミイサムチク -dv
テーブル名 (「MYISAMCHKを使用したテーブル情報の取得」のセクションを参照してください)。 The
row_pointer_length 行の数 値はデータファイルポインタとデータレコードです
テーブルの説明の値。 決定するには maximum_key 値、キーを確認してください
テーブルの説明の行。 Len列は、それぞれのバイト数を示します
重要な部分。 複数列のインデックスの場合、キーサイズは次のLen値の合計です。
すべての重要な部分。
修復中にディスク容量に問題がある場合は、試してみてください --安全な回復
- 回復します.
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サービスを使用してmyisamchkをオンラインで使用する