今日から金曜、もしかしたら月曜まで俺のインターン担当のW氏が居なくなってしまった。いうわけで一人で仕事してます。いっても技術的な質問はそのほかの人に出来るんですけどね。仕事内容は話せないので今日は自分が得た知識を。ちなみにネットで調べて乗ってるようなことなのでここに書いても問題は無いです。今まで経験があるとはいえ適当なプログラムに適当に使っただけなので、レコードは精々100くらい。今回のインターンでは実践に近い環境を用意するのでテストデータのレコード数1000万件。見た時はビビったね!こりゃあ多すぎだろうと!実際どうなのか知りませんけど・・・。今日はDDL(CREATE文)を作りながらテストデータをどうやって用意しようか検討。「テストデータ1000万だよ?時間足りる?」ハッ・・・!こいつはやべえ・・・絶対無理。いうわけでW氏が提案してくれた手法1、ストアドプロシージャを使うことに。ストアドは簡単に言うとDB内からSQL実行するもの。いちいちコネクションしなくていいからその分早くなるでしょ?とのこと。いう訳で苦労してストアド調べて書いて実行!1000万件INSERTに100時間かかるよ!こいつはやべえ、やばすぎる。DATA文でタブや改行で区切ったtxtを読み込ませるものでめっさ高速にINSERTできるらしい。いうか多分内部でINSERTは使ってなくて単純なコピーをやってるから早いんだろう、多分。本日家に帰ってきてから実験。本番とテーブル定義こそ違うものの、1000万件が3分で入っちゃったよ!txtは130MBです。なんというファイルコピー・・・・。いやあバルクロード凄いですね。W氏ありがとう!これでDBスペシャリストにまた一歩近づいたぜ。明日は合同フォーラムとインターンです。コメントをキャンセルメールアドレスが公開されることはありません。