MySQL 5.1 リファレンスマニュアル :: 6 最適化 :: 6.3 ロック関連の問題 :: 6.3.3 同時挿入
« 6.3.2 テーブルロック関連の問題

6.4 データベース構造の最適化 »
Section Navigation      [Toggle]
  • 6.3 ロック関連の問題
  • 6.3.1 MySQL のテーブルロック方法
  • 6.3.2 テーブルロック関連の問題
  • 6.3.3 同時挿入

6.3.3. 同時挿入

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のパフォーマンスに幾分かの影響が与えられます。

Copyright © 1997, 2010, Oracle and/or its affiliates. All rights reserved. Legal Notices
Top / Previous / Next / Up / Table of Contents
© 2010, Oracle Corporation and/or its affiliates