テーブルに関する情報またはその統計を取得するには、以下のコマンドを実行します。これらの情報については後で詳しく説明します。
myisamchk -d tbl_name myisamchk
を
``describe モード''
で実行し、テーブル情報を生成する。--skip-external-locking
オプションを使用して MySQL
サーバを起動した場合、myisamchk
は、実行中に更新されたテーブルに対してエラーを報告する場合がある。しかし、myisamchk
は describe
モードではテーブルを変更しないため、データ破壊の危険性はない。
myisamchk -d -v tbl_name myisamchk
の実行中の処理に関する詳細な情報を取得するには、-v
を追加して冗長モードで実行する。
myisamchk -eis tbl_name テーブルの最重要情報のみ表示する。テーブル全体を読み取ることになるので、時間がかかる。
myisamchk -eiv tbl_name -eis
とほぼ同じであるが、このオプションを使用すると、進行中の処理も表示される。
myisamchk -d
による出力例
MyISAM file: company.MYI Record format: Fixed length Data records: 1403698 Deleted blocks: 0 Recordlength: 226 table description: Key Start Len Index Type 1 2 8 unique double 2 15 10 multip. text packed stripped 3 219 8 multip. double 4 63 10 multip. text packed stripped 5 167 2 multip. unsigned short 6 177 4 multip. unsigned long 7 155 4 multip. text 8 138 4 multip. unsigned long 9 177 4 multip. unsigned long 193 1 text
myisamchk -d -v
による出力例
MyISAM file: company Record format: Fixed length File-version: 1 Creation time: 1999-10-30 12:12:51 Recover time: 1999-10-31 19:13:01 Status: checked Data records: 1403698 Deleted blocks: 0 Datafile parts: 1403698 Deleted data: 0 Datafilepointer (bytes): 3 Keyfile pointer (bytes): 3 Max datafile length: 3791650815 Max keyfile length: 4294967294 Recordlength: 226 table description: Key Start Len Index Type Rec/key Root Blocksize 1 2 8 unique double 1 15845376 1024 2 15 10 multip. text packed stripped 2 25062400 1024 3 219 8 multip. double 73 40907776 1024 4 63 10 multip. text packed stripped 5 48097280 1024 5 167 2 multip. unsigned short 4840 55200768 1024 6 177 4 multip. unsigned long 1346 65145856 1024 7 155 4 multip. text 4995 75090944 1024 8 138 4 multip. unsigned long 87 85036032 1024 9 177 4 multip. unsigned long 178 96481280 1024 193 1 text
myisamchk -eis
による出力例
Checking MyISAM file: company Key: 1: Keyblocks used: 97% Packed: 0% Max levels: 4 Key: 2: Keyblocks used: 98% Packed: 50% Max levels: 4 Key: 3: Keyblocks used: 97% Packed: 0% Max levels: 4 Key: 4: Keyblocks used: 99% Packed: 60% Max levels: 3 Key: 5: Keyblocks used: 99% Packed: 0% Max levels: 3 Key: 6: Keyblocks used: 99% Packed: 0% Max levels: 3 Key: 7: Keyblocks used: 99% Packed: 0% Max levels: 3 Key: 8: Keyblocks used: 99% Packed: 0% Max levels: 3 Key: 9: Keyblocks used: 98% Packed: 0% Max levels: 4 Total: Keyblocks used: 98% Packed: 17% Records: 1403698 M.recordlength: 226 Packed: 0% Recordspace used: 100% Empty space: 0% Blocks/Record: 1.00 Record blocks: 1403698 Delete blocks: 0 Recorddata: 317235748 Deleted data: 0 Lost space: 0 Linkdata: 0 User time 1626.51, System time 232.36 Maximum resident set size 0, Integral resident set size 0 Non physical pagefaults 0, Physical pagefaults 627, Swaps 0 Blocks in 0 out 0, Messages in 0 out 0, Signals 0 Voluntary context switches 639, Involuntary context switches 28966
myisamchk -eiv
による出力例
Checking MyISAM file: company Data records: 1403698 Deleted blocks: 0 - check file-size - check delete-chain block_size 1024: index 1: index 2: index 3: index 4: index 5: index 6: index 7: index 8: index 9: No recordlinks - check index reference - check data record references index: 1 Key: 1: Keyblocks used: 97% Packed: 0% Max levels: 4 - check data record references index: 2 Key: 2: Keyblocks used: 98% Packed: 50% Max levels: 4 - check data record references index: 3 Key: 3: Keyblocks used: 97% Packed: 0% Max levels: 4 - check data record references index: 4 Key: 4: Keyblocks used: 99% Packed: 60% Max levels: 3 - check data record references index: 5 Key: 5: Keyblocks used: 99% Packed: 0% Max levels: 3 - check data record references index: 6 Key: 6: Keyblocks used: 99% Packed: 0% Max levels: 3 - check data record references index: 7 Key: 7: Keyblocks used: 99% Packed: 0% Max levels: 3 - check data record references index: 8 Key: 8: Keyblocks used: 99% Packed: 0% Max levels: 3 - check data record references index: 9 Key: 9: Keyblocks used: 98% Packed: 0% Max levels: 4 Total: Keyblocks used: 9% Packed: 17% - check records and index references [LOTS OF ROW NUMBERS DELETED] Records: 1403698 M.recordlength: 226 Packed: 0% Recordspace used: 100% Empty space: 0% Blocks/Record: 1.00 Record blocks: 1403698 Delete blocks: 0 Recorddata: 317235748 Deleted data: 0 Lost space: 0 Linkdata: 0 User time 1639.63, System time 251.61 Maximum resident set size 0, Integral resident set size 0 Non physical pagefaults 0, Physical pagefaults 10580, Swaps 0 Blocks in 4 out 0, Messages in 0 out 0, Signals 0 Voluntary context switches 10604, Involuntary context switches 122798
上記の例で使用されたテーブルのデータファイルおよびインデックスファイルのサイズは以下のとおりです。
-rw-rw-r-- 1 monty tcx 317235748 Jan 12 17:30 company.MYD -rw-rw-r-- 1 davida tcx 96482304 Jan 12 18:35 company.MYI
以下、myisamchk
が生成する情報のタイプについて説明します。``キーファイル''
とはインデックスファイルのことです。``レコード''
と ``ロー'' はシノニムです。
ISAM file ISAM(インデックス)ファイルの名前。
Isam-version ISAM 形式のバージョン。現在は常に 2。
Creation time データファイルの作成日時。
Recover time インデックスまたはデータファイルが前回再構築された日時。
Data records テーブル内のレコード数。
Deleted blocks 予約済み領域をまだ占有している削除済みのブロック数。 テーブルを最適化して、この領域を最小にできる。 See 項4.5.6.10. 「テーブルの最適化」。
Data file:Parts
動的なレコード形式に対しては、存在するデータブロック数。断片化されたレコードのない最適化されたテーブルに対しては、Data
records
と同じ。
Deleted data 領域が解放されていない削除済みデータのバイト数。 テーブルを最適化して、この領域を最小にできる。 See 項4.5.6.10. 「テーブルの最適化」。
Data file pointer データファイルポインタのサイズ(バイト単位)。通常は 2、3、4、または 5 バイト。ほとんどのテーブルは 2 バイトで足りるが、現在のところ、MySQL で制御することはできない。固定テーブルでは、これはレコードアドレス。動的テーブルでは、バイトアドレス。
Keyfile pointer インデックスファイルポインタのサイズ(バイト単位)。通常は 1、2、または 3 バイト。ほとんどのテーブルは 2 バイトで足りるが、MySQL によって自動的に計算される。常にブロックアドレスである。
Max datafile length
テーブルのデータファイル(.MYD
ファイル)の最大長(バイト単位)。
Max keyfile length
テーブルのキーファイル(.MYI
ファイル)の最大長(バイト単位)。
Recordlength 各レコードが使用する領域サイズ(バイト単位)。
Record format テーブルレコードの格納形式。
上記の例では Fixed length
を使用。 他に、Compressed
および Packed
がある。
table description テーブル内のすべてのキーの一覧。各キーについて、以下の低レベル情報が表示される。
Key キー番号。
Start インデックス部が始まるレコード内の位置。
Len インデックス部の長さ。パックされた数値の場合、これは常にそのカラムの全長となる。文字列の場合、文字列カラムのプリフィックスをインデックスにできるため、インデックス化されたカラムの全長よりも短くなる場合がある。
Index unique
または
multip.
(複数)。このインデックスに値の重複が認められているかどうかを示す。
Type
インデックス部のデータ型。packed
、stripped
、または
empty
のいずれかの ISAM
データ型。
Root ルートインデックスブロックのアドレス。
Blocksize 各インデックスブロックのサイズ。デフォルトでは 1024 であるが、コンパイル時に変更可能。
Rec/key
オプティマイザによって使用される統計値。このキーの値ごとのレコード数を示す。ユニークキーの値は常に
1。これは、myisamchk -a
でテーブルがロード(または大きく変更)されると更新される。まったく更新されない場合は、デフォルト値の
30 となる。
上の最初の例の 9 番目のキーは 2 つのパートを持つマルチパートキー。
Keyblocks used
使用されたキーブロックのパーセント。例で使用されたテーブルは
myisamchk
で再構成されたばかりなので、値は非常に高い(理論的な最大値に非常に近い)。
Packed MySQL
は共通のサフィックスでキーのパックを試みる。これは、CHAR
、VARCHAR
、DECIMAL
の各キーにのみ使用できる。名前のような長い文字列では、パックにより使用領域を大きく減らすことができる。上の
3 番目の例では、4 番目のキーが 10
文字長で、領域が 60
パーセント減少している。
Max levels このキーの B-tree の深さ。長いキーのある大きなテーブルでは、値が高くなる。
Records テーブル内のレコード数。
M.recordlength レコードの平均の長さ。固定長レコードのテーブルでは、これは実際のレコード長となる。
Packed MySQL
は、文字列の最後からスペースを削除する。Packed
値は、これによって節約されたパーセントを示す。
Recordspace used 使用されているデータファイルのパーセント。
Empty space 使用されていないデータファイルのパーセント。
Blocks/Record
レコードごとの平均ブロック数(断片化レコードを構成するリンク数)。これは、固定形式テーブルでは常に
1.0。この値は可能な限り、1.0
に近くしておく。大きくなりすぎた場合は、myisamchk
で再編成できる。 See
項4.5.6.10. 「テーブルの最適化」。
Recordblocks 使用されているブロック(リンク)数。固定形式では、レコード数と同じになる。
Deleteblocks 削除されたブロック(リンク)数。
Recorddata 使用されているデータファイルのバイト数。
Deleted data 削除された(使用されていない)データファイルのバイト数。
Lost space レコードの長さを短くして更新した場合、領域がいくらか失われる。その失われた領域の合計バイト数。
Linkdata
動的テーブル形式では、レコードの断片がポインタでリンクされている(それぞれ
4 〜 7 バイト)。Linkdata
は、そのようなポインタすべてに使用されているストレージ量の合計を示す。
テーブルが myisampack
で圧縮されている場合、myisamchk -d
を実行すると、各テーブルカラムに関する追加情報が出力されます。これらの情報およびその意味については、項4.8.4. 「myisampack
(MySQL
圧縮読み取り専用テーブルジェネレータ)」
を参照してください。
This is a translation of the MySQL Reference Manual that can be found at dev.mysql.com. The original Reference Manual is in English, and this translation is not necessarily as up to date as the English version.