MyISAM
テーブルでは、テーブルに削除された行がない場合、SELECTの実行と同時に行を挿入できることに注意してください。
上記がデフォルト作動で、concurrent_insertsシステム変数で制御できます。1に設定された場合、削除された行を含むMyISAMテーブルで同時挿入が起こります。2に設定された場合、削除された行があっても、全ての新しい行がテーブル後部に付加されることで同時挿入が強制的に行われます。???を参照してください。
同時挿入が使用できる状況下では、INSERTステートメントのDELAYED修飾子を使用する必要はほとんどありません。項12.2.4.2. 「INSERT DELAYED 構文」を参照してください。
バイナリログを使用している場合、同時挿入はCREATE
... SELECTもしくはINSERT ...
SELECTステートメントの一般的な挿入に変換されます。このことで、バックアップ演算中にログを適用することでテーブルの正確なコピーを再作成することができます。
LOAD DATA
INFILEで同時挿入(つまり、途中に空きブロックを含まない)の条件を満たすMyISAMテーブルを使用してCONCURRENTを指定する場合、他のスレッドはLOAD
DATA実行中にテーブルからデータを取得することができます。このオプションを使用することで、たとえ他のスレッドが同時にテーブルを使用しているとしても、LOAD
DATAのパフォーマンスに幾分かの影響が与えられます。
