MongoDB ドライバーのパフォーマンス比較



この記事の計測結果は、2019年6月時点で利用可能な最新のドライバーを使用して得られたものです。

この記事では、CData の MongoDB 用ドライバーのパフォーマンスを、他の2社(競合1、競合2)の同等の技術、および MongoDB, Inc. が提供する「ドライバー」と比較します。MongoDB からデータをクエリし、結果セットを処理するのにかかる時間を測定することで、読み取りパフォーマンスを比較しました。

ドライバーを並べて比較するため、マシン自体のパフォーマンスは比較的重要ではありません。重要なのは、ドライバー間の相対的な比較です。

データ



再現可能な比較を提供するために、MongoDB, Inc. が公開しているサンプルの restaurants データセットをコピーし、このサンプルデータをもとに段階的に大きなデータセットを作成しました。クエリ対象のテーブルの詳細は以下のとおりです。

テーブル 行数
restaurants 25,360
restaurants_2 2,003,362
restaurants_3 10,016,805

クエリ



この調査の主な目的は、ドライバー間の相対的なパフォーマンスを比較することでした。各ドライバーで同じクエリを実行することで比較を行いました。単に MongoDB からデータを読み取るだけでなく、実際のデータ処理をシミュレートするために、各行の値を文字列変数に格納しました(この変数は各行ごとに置き換えられます)。使用したクエリは以下のとおりです。

  1. SELECT borough, restaurant_id, _id, cuisine, name FROM restaurants
  2. SELECT borough, restaurant_id, _id, cuisine, name FROM restaurants_2
  3. SELECT borough, restaurant_id, _id, cuisine, name FROM restaurants_3

結果



以下に、ドライバー/プラットフォームごとの各クエリのパフォーマンスを示します。

JDBC / Java ドライバー

比較対象の4社すべてが、Java アプリケーションで MongoDB データをネイティブに扱える JDBC ドライバーまたは同等の技術を提供しています。シンプルな Java アプリケーションでクエリ結果を処理した結果は以下のとおりです。

会社別 JDBC/Java クエリ時間(ミリ秒)
クエリ CData Software 競合1 競合2 MongoDB, Inc.
1(約25,000行) 59.3 (-15% - +28%) 62.8 50.4 75.7
2(約2,000,000行) 1,548.9(最大 +200% 1,555.6 3,035.5 4,646.7
3(約10,000,000行) 10,195.1 (+6% - +174%) 10,795.3 17,798.8 27,991.9

結果からわかるように、CData ドライバーは大規模な結果セットを、他のドライバーと同等以上の速度で処理できました。最も遅い競合製品と比較して、2倍以上の速度で結果を取得・処理できることも珍しくありません。CData ドライバーが遅い場合でも、その差はほとんど気づかない程度であり、ライブスキーマ検出を実行するためのトレードオフによるものです。

各クエリ(大規模データセット)の平均実行時間を以下のチャートで比較しています。

約2,000,000行の結果

約10,000,000行の結果

結論



CData Software のドライバーは、特に大規模なデータセットを扱う場合に、競合製品よりも高速であることが多いです。ドライバーが遅い場合でも、その差はほとんど気づかない程度(10ミリ秒未満)であり、他のプロバイダーよりも NoSQL データを深く掘り下げるライブスキーマ検出のトレードオフです。NoSQL データ(MongoDB に格納されているデータなど)を扱うための革新的な手法については、NoSQL ドライバー機能比較をご覧ください。

速度は一つの指標にすぎませんが、ドライバーのパフォーマンスは、すべてのドライバーとデータアクセス技術に組み込まれた深い技術力の強力な指標です。開発者たちは、MongoDB データベースから返される結果の処理パフォーマンスを最適化するために多くの時間を費やしてきました。その結果、ドライバーはネットワークトラフィックとサーバー処理時間によってのみ制限されているように見えるほどです。

関連記事



  •  NoSQL ドライバー:機能比較 - さまざまなベンダーのドライバーが、NoSQL データソースの複雑なクエリやデータセットをどのように処理するかを比較します。
  •  CData NoSQL 概要 - NoSQL を扱う際に CData のドライバー技術を際立たせる機能について説明します。

始める準備はできましたか?

MongoDB 用ドライバーの詳細、または無料トライアルをダウンロード:

今すぐダウンロード