問題が発生するのを待より,テブルチェックを定期的に実行することをお勧めします。MyISAM
テブルをチェックまたは修復する1の方法は,检查表
および修理表
ステ,トメントを使用することです。セクション13.7.2 "テ,ブル保守ステ,トメント"を参照してください。
テ,ブルをチェックする別の方法は,myisamchkを使用することです。保守の目的には,myisamchk - sを使用できます。- s
オプション(——沉默
の短縮形)により,サmyisamchkが実行され,エラ,が発生した場合のみ,メッセ,ジが出力されます。
自動MyISAM
テ,ブルチェックを有効にすることをお勧めします。たとえば,マシンが更新の途中で再起動を実行した場合、通常、影響を受けた可能性のある各テーブルが使用される前に、それをチェックする必要があります。(これらは「予期されるクラッシュしたテ,ブル」です.)サ,バ,にMyISAM
テ,ブルを自動的にチェックさせるには,それを——myisam-recover-options
オプションを付けて起動します。セクション5.1.3 "サ,バ,コマンドオプション"を参照してください。
通常のシステム操作時にも定期的にテ,ブルをチェックしてください。たとえば,定时任务
ファaapl . exeル内の次のような行を使用して,週1回cronジョブを実行し,重要なテ,ブルをチェックします。
35 0 * * 0/ / myisamchk /路径——快——沉默/ / datadir /路径/ * / *。MYI
これはクラッシュしたテーブルに関する情報を出力するため,テーブルを調査し,必要に応じて修復できます。
はじめに,過去24時間中に更新されたすべてのテ,ブルに対して,毎晩myisamchk - sを実行します。その問題がまれにしか発生しないことがわかったら,チェックの頻度を週1回などに減らすことができます。
通常,MySQLテ,ブルはほとんど保守が必要ありません。動的サ@ @ズの行のあるMyISAM
テブル(VARCHAR
、团
,または文本
カラムのあるテーブル)に何回も更新を実行するか,または多くの削除された行のあるテーブルがある場合,ときどきテーブルの領域をデフラグ/再利用する必要がある場合があります。これは,問題のテ,ブルに优化表
を使用して実行できます。または,しばらくの間,mysqldサーバーを停止できる場合は,サーバーの停止中に,場所をデータディレクトリ内に変更し,次のコマンドを使用します。
shell> myisamchk -r -s——sort-index——myisam_sort_buffer_size=16M */*。MYI