プロが教えるわが家の防犯対策術!

 元文学部、プログラマ1年目です。

 今日は会社からあるデータをMySQLを入れるように言われました。
 tar.gzファイルが1000ほどあり、それを解凍して「LOAD DATA INFILE」構文で入れるというものです。
 入力作業自体は難しくないはずなのですが、少しやっかいなのは、合計200GBほどの大量データであり、ファイルによってタブの位置が違ったりします。

 自分のレベルであっても、それくらいの整形はできるのですが、何しろデータ量が半端なく多いので、エラーが出たりすると中断したりして、順調には行きません。
 すでに2日まるまるかかっていますが、まだ終わりません。

 さて、ここで質問なのですが、一般にこうしたデータベースの大量入れ込み作業というのはどれくらいかかるのでしょうか。周囲はマイペースでやってかまわないというのですが、ここまで時間がかかると少し不安になってきます。ただし、経験も少ないので、かかる時間の目安もわかりません。
 どなたか、親切な方、大量データの入力にかかる時間の大体の目安というのを教えていただけませんか。

A 回答 (2件)

>大量データの入力にかかる時間の大体の目安



そんなものは、存在しません。

入力データに誤りがないという前提で、私の階層DBの経験では、最適でない設計をした場合、24時間必要であったものが、最適な設計にしたら30分で完了したといった事例があります。

しかし、今回の話は、入力データのミスを含めた話ですよね?
テスト環境でのリハーサルや入力データ作成元が、「どのような検証をしたのか?」といったことを、逆に聞きたいです。

階層DBなどを含めたDBMSの性能では、I/O回数が全体の処理時間に大きく影響します。階層DBでは、これ以外に、重複チェックなどが、性能劣化を引き起こす要因でした。RDBMSでは、これ以外に、表の構成列数も、性能に大きく影響します。また、データの初期ロード(今回は、LOAD DATA INFILE)が、「初期ロード用の専用インタフェースで行なわれているか」、「SQLのインタフェースで行なわれているか」といったことが、性能に大きく影響します。後者の「SQLのインタフェース」は、通常のファイル操作に比べ、コストパーフォマンスは劣化します。初期ロード等向けに専用インタフェースがあり、必要最小限の処理が提供されていれば、コストパーフォーマンスは優位になります。
    • good
    • 0
この回答へのお礼

 本当にありがとうございます。
 今回のデータ入力は急ぎではないので、最終的に入れられればよいらしいです。自分も1日でできるだろうと思っていたのですが、予定以上に時間がかかってしまいました。

 事前のデータ形式は仕様書レベルではわかるのですが、そこには書いていないような事例がいくつか頻発して、それがエラーの原因になるのです。
 ケースによりけり、という心強いお言葉をいただいた時点で前進できそうな気がします。

お礼日時:2007/08/08 20:40

#1です。



通信のオーバーヘッドを、書き忘れました。

入力ファイルがDBサーバ上にあるのか、ローカルマシンかによって、話は全然違ってきます。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す