私のアプリ (MySQL を使用) は、多数の後続の upsert を実行しています。現在、私のSQLは次のようになっています。
INSERT IGNORE INTO customer (name,customer_number,social_security_number,phone) VALUES ('VICTOR H KINDELL','123','123','123')
INSERT IGNORE INTO customer (name,customer_number,social_security_number,phone) VALUES ('VICTOR H KINDELL','123','123','123')
INSERT IGNORE INTO customer (name,customer_number,social_security_number,phone) VALUES ('VICTOR H KINDELL OR','123','123','123')
INSERT IGNORE INTO customer (name,customer_number,social_security_number,phone) VALUES ('TRACY L WALTER PERSONAL REP FOR','123','123','123')
INSERT IGNORE INTO customer (name,customer_number,social_security_number,phone) VALUES ('TRACY L WALTER PERSONAL REP FOR','123','123','123')
これまでのところINSERT IGNORE
、アップサートを実現する最速の方法であることがわかりました。レコードを選択して存在するかどうかを確認し、それを更新するか新しいレコードを挿入するのは遅すぎます。レコードごとに個別のステートメントを実行する必要があるため、これでも思ったほど高速ではありません。時には、これらのステートメントを約 50,000 回続けて使用することもあります。
既存のレコードを削除せずに、これらすべてを 1 つのステートメントで処理する方法はありますか?