INSERT ... ON DUPLICATE KEY UPDATE InnoDBのAUTO_INCREMENTの目的では、「混合モード挿入」として説明されています 取り扱い。混合モードの挿入は、基本的に最大の挿入です。 必要なAUTO_INCREMENTの数 値はわかっていますが、実際に必要になる量 そうではありません。
InnoDBを使用している場合、代替手段は次のとおりです。
-
INSERT ... ON DUPLICATEKEYUPDATEを避けてください。 -
innodb_autoinc_lock_mode コード>0へのパラメータ 、「従来の」自動インクリメントロックモードの場合。これにより、すべてのINSERTが保証されます。 ステートメントは、AUTO_INCREMENTに連続した値を割り当てます 列。ただし、これはステートメント中にロックすることで実現されるため、この設定に関連してパフォーマンスが低下します。 - (推奨)
AUTO_INCREMENTのギャップを無視します 列。
注: AUTO_INCREMENT この動作を示さないMyISAMでは、処理がまったく異なります。