MySQL 8.0 リファレンスマニュアル MySQL NDB Cluster 8.0 を含む

このページは機械翻訳したものです。

4.6.4.6 myisamchk メモリー使用量

myisamchk を実行する際、メモリー割り当ては重要です。myisamchk はメモリー関係の変数の設定を超えてメモリーを使用することはありません。 myisamchk を非常に大きなテーブルで使用する場合、まずどのくらいのメモリーを使用するか決定する必要があります。 デフォルトでは、修復に 3M バイト程度しか使用しないように設定されています。 より大きな値を使用することで、myisamchk の動作速度を上げることができます。 たとえば、512M バイトを超える RAM が使用可能な場合は、(ほかに指定するオプションに加えて) 次のようなオプションを使用できます。

shell> myisamchk --myisam_sort_buffer_size=256M \
           --key_buffer_size=512M \
           --read_buffer_size=64M \
           --write_buffer_size=64M ...

おそらくほとんどの場合には --myisam_sort_buffer_size=16M を使用すれば十分です。

myisamchkTMPDIR 内の一時ファイルを使用することに注意してください。 TMPDIR がメモリーファイルシステムを指している場合、メモリー不足エラーが容易におきる可能性があります。 これが発生した場合は、--tmpdir=dir_name オプションを指定して myisamchk を実行し、より多くの領域を持つファイルシステム上にあるディレクトリを指定します。

修復操作を実行する場合、myisamchk はディスクスペースも大量に必要とします。

修復中にディスクスペースの問題がある場合は、--recover の代わりに --safe-recover を使用してみてください。