テキスト(CSV)とRDBで1000万行の処理速度比較してみた

テキスト(CSV)とRDBで1000万行の処理速度比較してみた

データ蓄積・分析・活用こそが、昨今のIT業界において競争を優位に働かせるのは周知の事実。
しかし、膨大なデータ量は捌くのにスピードを犠牲にしがちになります。

そこで、今回はすべてのレコードを読み込んだ際に、テキスト(CSV)リレーショナルデータベース(RDB)とでどちらが優位性をもたらすのかを確認することにしました。

その検証の顛末を本記事でご紹介させていただきます。

検証に至った理由とは?

業務内ですべてのレコードを読み込む処理をかける必要ががあり、CSVとRDBのどちらで管理した方が良いのかを判定する必要が生じた、というのがキッカケです。

答えは検証結果を待つまでもなく、この場合はテキスト(CSV)の方が早いことは分かりきっています。ただ、どの程度早く、どの程度パフォーマンスが変わるのかを把握しておきたかったんですね。

検証結果の末、もしどちらを選択してもパフォーマンスにそれほど差がないようであれば、集積データの調査等でSQLが使えるRDBの方が利便性に富んでいるので、RDBを選択することも考えられます。

いずれにしても、固定概念を打ち崩すキッカケにもなるかもしれないので、検証を以ってスッキリさせたかったというのが最大の理由になります。

検証にあたって、こんな準備をしてみた

<環境は……>
通常業務に差し支えない範囲で使えるAtomマシンで検証を行ったので、以下のようなスペックのマシンで確認を行いました。

  • CPU …… Intel(R) Atom(TM) CPU D510 @ 1.66GHz
  • Memory …… 4GB
  • Disk …… SSD:約50GB

このAtomマシンで検証を行うと決めたものの、CPUがしょぼすぎてRDBが不利に働くような気がする。。。
とはいえ、他に確認できる最適な環境が用意できなかったので、結果に差が大きくつきすぎることを想定し、一応、ローカルMacでも確認することにしました。
そのローマルMacのスペックは以下の通りです。

Mac …… iMac(Retina 5K, 27-inch, Late 2015)

  • CPU …… iMac (Retina 5K, 27-inch, Late 2015) :4 GHz Intel Core i7

【週刊bitWave】(メルマガ)始めました!

登録はこちらからメールアドレスを入力してお申込みください。

ご登録いただいたメールアドレスは 【週刊bitWave】の更新情報の配信にのみ使用します。

個人情報の取扱いに関しては、「プライバシーポリシー」をご確認ください。解除はいつでこちらから行うことが可能です。

あなたにおすすめ

仮想環境で『Ansible』を使ってサーバ構築... 最近、サーバ構築を実施する必要がありました。 まずは仮想環境を作り、サーバ構築を……と思ったのですが、私はインフラ周りの経験が浅く、色々困ったことが頻出してしまいました。 今回の記事では、私と同じような “サーバ構築ビギナー” ...
内線電話用の番号検索|Slack APPで作ってみた... ショーケース・ティービーではメール誤送信防止という観点から、社内連絡ではチャットツールを使用しています。 現在使用しているツールは「HipChat」。 <bitWave関連記事『情報漏えいしないための決定打!”Hip Chat”』>...
Amazon EC2|Red Hat Linux 7.3で“Muninインストール“や“パッケージ導... ナマステ~! 私はナラヤンです! 今回が初投稿になるのですが、実はこれまで何度か本bitWave上でも登場していました。 <bitWave関連記事『おもてなしの企業の社員が、ネパール人をおもてなししてみた!』> <bitWave関...
継続的インテグレーションツール『Jenkins』を触ってみた... こんにちは。M.Sです。 現在、『Jenkins』からSeleniumを実行するお題に取り組んでいます。 『Jenkins』ってなに? 身近な継続的インテグレーションとは 『Jenkins』はjavaで実装されたオープンソー...