myisamchkメモリ使用量

myisamchkを起動させるとき、メモリの割り当ては重要です。myisamchkはセットされたメモリ関連の変数以上のメモリを使用しません。myisamchkを大きなテーブルで使用する場合、まずどのくらいのメモリを使用するか決定しなければいけません。デフォルトで、修復には3MBくらいしか使用しないように設定されています。さらに大きな値を設定することで、myisamchkのオペレーション速度を上げることができます。例えば、32MB RAMよりも多くメモリがある場合、以下のオプション(他に特定したオプションのほかに)を使用することができます。

shell> myisamchk --sort_buffer_size=16M --key_buffer_size=16M \
           --read_buffer_size=1M --write_buffer_size=1M ...

--sort_buffer_size=16Mを使用すれば、ほとんどの場合ことたります。

myisamchkTMPDIR内でテンポラリファイルを使用することに注意してください。もしTMPDIRがメモリファイルシステムを指した場合、メモリエラーから簡単に脱出できます。これが起こった場合、スペースに余裕のあるファイルシステム上のディレクトリを指定するよう、myisamchk--tmpdir=pathオプションと使用してください。

修復時、myisamchkもディスクスペースを大量に必要とします。

修復中、ディスクスペースが足りなくなった場合、--recoverの代わりに--safe-recoverを使用してみてください。