current
、、、などの 3 つの関連する MySQL テーブルに挿入する必要がある、たとえば 100 個のアイテムのバッチを受け取りrecent
ますhistorical
。速度を上げるために、単一の挿入ステートメントでグループとして各テーブルに各バッチを挿入したいと考えています。テーブルには、挿入された行ごとに取得する必要current
がある自動インクリメントの主キーがあり、主キーとして使用してとテーブルid
に同じ行を挿入します。私の考えは、 の現在の auto_increment 値を取得し、を使用して 100 ずつインクリメントし、「予約」したばかりのブロックからプログラムで設定された ID を使用して 100 行を挿入することです。次に、およびテーブルへの挿入に同じ 100 個の予約済み id 値を使用できます。recent
historical
current
alter table current AUTO_INCREMENT=
current
recent
historical
current
テーブル。
私の質問: これが悪い考えである理由はありますか? 私はウェブ上でそれについて何も見たことがありません。私がスタックオーバーフローで見た中で最も近いのは、自動インクリメントフィールドへの挿入ですが、それはまったく同じではありません。一度に複数のスレッドからこれを実行しようとすると、スレッドの問題が発生する可能性があります。
また、これを達成する方法に関する他の提案も受け付けています。