• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:insertを高速化させたい)

insertを高速化させたい

このQ&Aのポイント
  • 20件程度の情報をテーブルにinsertするのに、30秒以上かかる問題について。
  • Windows XPとMYSQL(TABLE1のidにはindexつき)の環境で発生しています。
  • DBにinsertせずにテキストファイルに書き込む方法では一瞬で挿入が完了しますが、DBに書き込む際には高速化を図りたいです。

質問者が選んだベストアンサー

  • ベストアンサー
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

総データ数、インデックスの設定、ユニークやプライマリの設定によって ことなりますが、 >idが無ければinsert。 >あれば読み飛ばす という仕様であれば、idにユニークを設定し、 INSERT IGNORE INTO TABLE1 (id) values(・・・) で十分ですね

mellow91
質問者

お礼

insert ignoreというのは知りませんでした。一度試してみたいと思います、ありがとうございます!!

その他の回答 (2)

  • nora1962
  • ベストアンサー率60% (431/717)
回答No.3

「id」にインデックス作成してありますか。INSERTに時間かかっているというよりidが同一のレコード検索に時間がかかっている気がするのですが。 解決策は#1さんの書かれているのが一番簡単かなと思います。

mellow91
質問者

お礼

#1様にご回答頂いたignoreというのを知らなかったので、こちらでやってみます。ありがとうございます!

回答No.2

極端に遅すぎます。 仕様や考え方がどうのではなくて、冗長な処理が混じっていると思います。 CSVを読み込むところから、まずはロジックを見直した方がいいです。 その上で高速化を検討してください。

mellow91
質問者

お礼

はい、極端に遅すぎると思っていました。もう一度コードを精査してみます。ありがとうございます!