MySQL 8.0 リファレンスマニュアル MySQL NDB Cluster 8.0 を含む
このページは機械翻訳したものです。
MyISAM テーブルの振る舞いを変えるために、次の mysqld オプションを使用できます。 追加情報については セクション5.1.7「サーバーコマンドオプション」を参照してください。
表 16.3 「MyISAM オプションおよび変数リファレンス」
| 名前 | コマンド行 | オプションファイル | システム変数 | ステータス変数 | 変数スコープ | 動的 |
|---|---|---|---|---|---|---|
| bulk_insert_buffer_size | はい | はい | はい | 両方 | はい | |
| concurrent_insert | はい | はい | はい | グローバル | はい | |
| delay_key_write | はい | はい | はい | グローバル | はい | |
| have_rtree_keys | はい | グローバル | いいえ | |||
| key_buffer_size | はい | はい | はい | グローバル | はい | |
| log-isam | はい | はい | ||||
| myisam-block-size | はい | はい | ||||
| myisam_data_pointer_size | はい | はい | はい | グローバル | はい | |
| myisam_max_sort_file_size | はい | はい | はい | グローバル | はい | |
| myisam_mmap_size | はい | はい | はい | グローバル | いいえ | |
| myisam_recover_options | はい | はい | はい | グローバル | いいえ | |
| myisam_repair_threads | はい | はい | はい | 両方 | はい | |
| myisam_sort_buffer_size | はい | はい | はい | 両方 | はい | |
| myisam_stats_method | はい | はい | はい | 両方 | はい | |
| myisam_use_mmap | はい | はい | はい | グローバル | はい | |
| tmp_table_size | はい | はい | はい | 両方 | はい |
次のシステム変数は MyISAM テーブルの振る舞いに影響を与えます。 追加情報については セクション5.1.8「サーバーシステム変数」を参照してください。
bulk_insert_buffer_size
大量挿入の最適化に使用されるツリーキャッシュのサイズです。
これは、スレッド当たりの制限値です。
delay_key_write=ALL
MyISAM テーブルへの書き込みの間にキーバッファーをフラッシュしないでください。
これを行う場合、MyISAM テーブルの使用中に別のプログラムから (別の MySQL サーバーから、myisamchk を使用して、など)、このテーブルにアクセスしないでください。 そのようにすると、インデックスが破損するおそれがあります。 --external-locking を利用しても、このリスクは回避されません。
myisam_max_sort_file_size
MyISAM インデックスの再作成時 (REPAIR TABLE、ALTER TABLE または LOAD DATA) に MySQL で使用できる一時ファイルの最大サイズ。 ファイルサイズがこの値より大きい場合、さらに低速なキーキャッシュを代わりに使用してインデックスが作成されます。 値はバイト単位で指定されます。
myisam_recover_options=
mode
クラッシュした MyISAM テーブルの自動リカバリにモードを設定します。
myisam_sort_buffer_size
テーブルのリカバリ時に使用されるバッファーのサイズを設定します。
myisam_recover_options システム変数を設定して mysqld を起動すると、自動リカバリがアクティブ化されます。 この場合、サーバーが MyISAM テーブルを開いたときに、テーブルにクラッシュのマークが付いているかどうかや、テーブルのオープンカウント変数が 0 でないかどうか、そして外部ロックが使用不可能な状態でサーバーを作動させているかどうかを確認します。 これらの条件のいずれかが true である場合、次のことが起こります。
サーバーは、テーブルにエラーがあるかどうかを確認します。
サーバーがエラーを検出した場合、迅速なテーブル修復を行います (データファイルのソートは行いますが、再作成は行いません)。
データファイルの中にエラーがあるために (たとえば、重複キーエラーなど) 修復が失敗した場合、サーバーは再試行して、今度はデータファイルを再作成します。
それでも修復が失敗した場合、サーバーはもう一度古い修復オプション方式で試行します (ソートをせずに行ごとに書き込みます)。 この方法は、どのタイプのエラーも修復できるはずであり、ディスク容量の要件は低くなっています。
リカバリで以前に完了したステートメントのすべての行をリカバリできず、myisam_recover_options システム変数の値に 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