MySQL 5.1 リファレンスマニュアル :: 4 データベース管理 :: 4.9 バックアップとリカバリ :: 4.9.4 テーブル保守とクラッシュ リカバリ :: 4.9.4.5 テーブル情報の取得
« 4.9.4.4 テーブルの最適化

4.9.4.6 テーブル保守計画 »
Section Navigation      [Toggle]
  • 4.9.4 テーブル保守とクラッシュ リカバリ
  • 4.9.4.1 myisamchk でクラッシュ リカバリ
  • 4.9.4.2 MyISAM テーブルのエラー チェック方法
  • 4.9.4.3 テーブルの修復方法
  • 4.9.4.4 テーブルの最適化
  • 4.9.4.5 テーブル情報の取得
  • 4.9.4.6 テーブル保守計画

4.9.4.5. テーブル情報の取得

テーブルに関する情報またはその統計を取得するには、次に示すコマンドを実行します。これらの情報については後で詳しく説明します。

  • myisamchk -m tbl_name

    myisamchk を 「describe モード」 で実行し、テーブル情報を生成する。外部ロックが無効になっている MySQL サーバを起動した場合には、myisamchk は、実行中に更新があったテーブルに対してエラーを報告することがあるが、データ破壊の危険性はない。describe モードでmyisamchk がテーブルを変更することはない。

  • myisamchk -d -v tbl_name

    実行中の処理に関する詳細な情報を取得するには、-v 追加して、myisamchk を冗長モードで実行する。

  • myisamchk -eis tbl_name

    テーブルの最重要情報のみを表示する。このオペではテーブル全体を読み取るため、時間を要する。

  • myisamchk -eiv tbl_name

    -eis とほぼ同じ。このオプションを使用すると、進行中の処理 (それまでに何が行われたか) も表示する。

ここで、この 3 つのコマンドを使用した出力例を示します。テーブル内の任意データとインデックス ファイルのサイズに基づいています。

-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 -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
Datafile pointer (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

次の説明において、myisamchk が生成する情報のタイプについて説明します。「Keyfile」 とはインデックス ファイルのことです。「Record」 と 「row」 はシノニムです。

  • MyISAM file

    MyISAM (インデックス) ファイルの名前

  • File-version

    MyISAM フォーマットのバージョン。現在は常に 2。

  • Creation time

    データ ファイルの作成日時。

  • Recover time

    インデックスまたはデータ ファイルを前回再構築した日時。

  • Data records

    テーブル内のレコード数。

  • Deleted blocks

    予約済み領域 (リザーブ) を占有している削除済み (デリート) のブロック数。 テーブルの最適化には、この領域を最小にする。項4.9.4.4. 「テーブルの最適化」 を参照のこと。

  • Datafile parts

    動的フォーマットに対して、存在するデータ ブロック数。断片化レコードがない最適化テーブルに対する Data records と同じ。

  • Deleted data

    領域を解放していない削除済みデータのバイト数。テーブルの最適化には、この領域を最小にする。項4.9.4.4. 「テーブルの最適化」 を参照のこと。

  • Datafile pointer

    データ ファイル ポインタのサイズ(バイト単位)。2、3、4、5 バイトのどれか。通常は 2 バイトで足りるが、現在のところ、MySQL で制御することはできない。固定テーブルでは、レコード アドレスのこと。動的テーブルでは、バイト アドレスのこと。

  • Keyfile pointer

    インデックス ファイル ポインタのサイズ(バイト単位)。1、2、3 バイトのどれか。通常のテーブルは 2 バイトで足りるが、MySQL で自動的に計算する。常にブロック アドレスのこと。

  • Max datafile length

    テーブルのデータ ファイル(.MYD ファイル)の最大長(バイト単位)。

  • Max keyfile length

    テーブルのインデックス ファイル(.MYD ファイル)の最大長(バイト単位)。

  • Recordlength

    それぞれのレコードで使用する領域サイズ(バイト単位)。

  • Record format

    テーブル レコードの格納形式。 上記の例では Fixed length を使用。 他に、Compressed および Packed がある。

  • table description

    テーブル内のすべてのキーの一覧。myisamchk コマンドで、それぞれのキーの低レベル情報を表示する。内容は次の通り。

    • Key

      キー番号。

    • Start

      インデックス部が始まるレコード内の位置。

    • Len

      インデックス部の長さ。パック数値の場合、これは常にそのカラムの全長となる。文字列の場合、文字列カラムのプリフィックスをインデックスにできるため、インデックス化したカラムの全長よりも短くなることがある。

    • Index

      unique または multip.(複数)。このインデックスで値の重複が認められているか (在るか) どうかを示す。

    • Type

      インデックス部のデータ型。packed、stripped、または empty のいずれかの ISAM データ型。

    • Root

      ルート インデックス ブロックのアドレス。

    • Blocksize

      それぞれのインデックス ブロックのサイズ。デフォルトでは 1024 であるが、MySQLをソースから組む場合、コンパイル時に変更可能。

    • Rec/key

      オプティマイザで使用する統計値。このインデックスのキー値ごとのレコード数を示す。ユニーク キーの値は常に 1。これは、myisamchk -a で、テーブルをロード(または大きく変更)すると更新する。更新しない場合は、デフォルト値の 30 のまま。

    (1 番目と 2 番目の) 出力例示のテーブルに、table description の 9 番目のキーが 2 つある。これは、2 パートを持つマルチ パート キー であることを示す。

  • Keyblocks used

    使用しているキー ブロックのパーセント。例で使用しているテーブルは myisamchk で再構成したばかりであるため、値が非常に高い(理論的最大値に非常に近い)。

  • Packed

    MySQL がキー間で共通するサフィックスの部分をパックした割合。これは、CHAR と VARCHAR のカラム キーにのみ使用可能。名前のような長い文字列では、MySQLがパックして使用領域を大きく減らす。たとえば、3 番目の出力例示の、4 番目のキーは、10 文字長 (100%) であるのに対して、領域を 60 % パックした (6割減) という意味。

  • Max levels

    このキーの B-tree の深さ。長いキーがある大きなテーブルでは、値が高くなる。

  • Records

    テーブル内のレコード数。

  • M.recordlength

    レコードの平均の長さ。固定長レコードのテーブルでは、これは実際のレコード長となる。

  • Packed

    MySQLが節約したパーセント。Packed 値 (%) は、MySQL が文字列の最後 (suffix) を削除してできたスペース。

  • Recordspace used

    使用してデータ ファイルのパーセント。

  • Empty space

    使用していないデータ ファイルのパーセント。

  • Blocks/Record

    レコードごとの平均ブロック数(断片化レコードを構成するリンク数)。これは、固定形式テーブルでは常に 1.0。この値は可能な限り、1.0 に近くしておく。大きくなりすぎた場合は、myisamchk で再編成する。項4.9.4.4. 「テーブルの最適化」 を参照のこと。

  • Recordblocks

    使用しているブロック(リンク)数。固定形式では、レコード数と同じになる。

  • Deleteblocks

    削除したブロック(リンク)数。

  • Recorddata

    使用しているデータ ファイルのバイト数。

  • Deleted data

    削除した(使用していない)データ ファイルのバイト数。

  • Lost space

    失った領域の合計バイト数。レコード長さを短くして更新した場合の、短くなった領域分。

  • Linkdata

    ポインタが使用しているストレージ量の合計 (これを Linkdata 値 と呼ぶ)。動的テーブルの場合、レコード断片をポインタでリンクしている(それぞれ 4 から 7 バイト)。

テーブルを myisampackで圧縮している場合は、myisamchk -d を実行すると、それぞれのテーブル カラムに関する追加情報を出力します。この情報の詳細は 項7.6. 「myisampack — 圧縮された、読み取り専用MyISAM テーブルを作成する。」 を参照してください。

Copyright © 1997, 2010, Oracle and/or its affiliates. All rights reserved. Legal Notices
Top / Previous / Next / Up / Table of Contents
© 2010, Oracle Corporation and/or its affiliates