- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:insertを高速化させたい)
insertを高速化させたい
このQ&Aのポイント
- 20件程度の情報をテーブルにinsertするのに、30秒以上かかる問題について。
- Windows XPとMYSQL(TABLE1のidにはindexつき)の環境で発生しています。
- DBにinsertせずにテキストファイルに書き込む方法では一瞬で挿入が完了しますが、DBに書き込む際には高速化を図りたいです。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
総データ数、インデックスの設定、ユニークやプライマリの設定によって ことなりますが、 >idが無ければinsert。 >あれば読み飛ばす という仕様であれば、idにユニークを設定し、 INSERT IGNORE INTO TABLE1 (id) values(・・・) で十分ですね
その他の回答 (2)
- nora1962
- ベストアンサー率60% (431/717)
回答No.3
「id」にインデックス作成してありますか。INSERTに時間かかっているというよりidが同一のレコード検索に時間がかかっている気がするのですが。 解決策は#1さんの書かれているのが一番簡単かなと思います。
質問者
お礼
#1様にご回答頂いたignoreというのを知らなかったので、こちらでやってみます。ありがとうございます!
- duke_kimura
- ベストアンサー率39% (53/134)
回答No.2
極端に遅すぎます。 仕様や考え方がどうのではなくて、冗長な処理が混じっていると思います。 CSVを読み込むところから、まずはロジックを見直した方がいいです。 その上で高速化を検討してください。
質問者
お礼
はい、極端に遅すぎると思っていました。もう一度コードを精査してみます。ありがとうございます!
お礼
insert ignoreというのは知りませんでした。一度試してみたいと思います、ありがとうございます!!