MyISAM
テーブルの性能を変える為に次の
mysqld
オプションを使う事ができます。追加情報については
項4.2.2. 「コマンド オプション」を参照してください。
次のシステム変数はMyISAM
テーブルの性能に影響を与えます。追加情報については
項4.2.3. 「システム変数」を参照してください。
bulk_insert_buffer_size
大量挿入最適化で使用されるツリーキャッシュのサイズ。注:これはそれぞれのスレッドのリミットです!
myisam_max_sort_file_size
MyISAM
インデックスを再作成している最中にMySQLが使用を許されているテンポラリファイルの最大サイズ
(REPAIR TABLE
、ALTER
TABLE
、 または LOAD DATA
INFILE
の最中)。もしファイルサイズがこの値よりも大きければ、代わりにキーキャッシュを使用してインデックスが作成されますが、この方法のほうが遅くなります。値はバイトで表示されます。
myisam_sort_buffer_size
テーブルをリカバする時に使用されるバッファのサイズを設定します。
もし --myisam-recover
オプションを利用してmysqldをスタートさせれば、自動修復が作動します。この場合、サーバーが
MyISAM
テーブルを開いた時に、テーブルにクラッシュのマークが付いているかどうかや、テーブルのオープンカウント変数が0でないかどうか、そして外部ロックが使用不可能な状態でサーバーを作動させているかどうかを確認します。もしこのような条件が整っていると、次のような事が起こります。
サーバーがテーブルのエラーをチェックします。
もしサーバーがエラーを発見すると、高速テーブル修復を試みます。(データファイルの保存はしますが、再作成はしません。)
データファイル中のエラーのせいで修復が失敗したら、(例えば重複キーエラー)、サーバーは今度はデータファイルを再作成してもう一度修復を行います。
もし修復がまた失敗したら、サーバーは古い修復オプションの方法でもう一度修復を試みます (ソートせず一行ずつ書く)。この方法であればどんなタイプのエラーも修復し、ディスクのスペースも少しで済みます。
MySQL Enterprise.
もし --myisam-recover
オプションがセットされていなければ、MySQL
Network Monitoring and Advisory
Serviceの加入者は通知を受け取ります。追加情報については
http://www-jp.mysql.com/products/enterprise/advisors.htmlを参照してください。
もし以前に完成されたステートメントから全ての行を回復できず、--myisam-recover
オプション値の中のFORCE
を指定しなければ、
自動修復はエラーログにエラーメッセージを残して異常終了します。
Error: Couldn't repair table: test.g00pages
もし
FORCE
を指定すると、代わりにこのような警告が書かれます。
Warning: Found 344 of 354 rows when repairing ./test/g00pages
もし自動修復値がBACKUP
を含んでいる時、修復プロセスは
の名前でファイルを作成します。これらのファイルを自動的にデータベースディレクトリからバックアップメディアに移動する
cron スクリプトが必要です。
tbl_name-datetime
.BAK