ITips(アイティップス) ITエンジニアのスキルアップ方法とノウハウ情報

処理速度と拡張性が強み! 2009年登場の注目データベースMongoDBとは?

MongoDB(モンゴ・ディービー)はデータベースの一種ですが、「Oracle」などに代表されるリレーショナルデータベース管理システム(RDBMS)ではなく、NoSQL(ノーエスキューエル)と呼ばれるものに分類されます。

MongoDB

MongoDB(モンゴ・ディービー)はデータベースの一種ですが、「Oracle」などに代表されるリレーショナルデータベース管理システム(RDBMS)ではなく、NoSQL(ノーエスキューエル)と呼ばれるものに分類されます。
NoSQLは「Not only SQL」つまり、リレーショナルデータベース管理システム (RDBMS) 以外のデータベース管理システムを指す用語です。
MongoDBをはじめとするNoSQLは、 RDBMSに比べて機能を削ることで処理速度などある特定の機能の性能をアップさせているのが特徴です。

ユニークな名称の由来は、英単語の「humongous(とてつもなく大きい)」から来ているとのことです。2009年に登場し、現在もっとも注目されているデータベースといわれています。

MongoDBは、ドキュメント志向のデータベースシステム

MongoDBは、ドキュメント志向のデータベースシステムで、データを非定型のデータ構造の集合体として管理します。このデータの集合を「ドキュメント」と呼び、ドキュメントの集合を「コレクション」として管理しています。
MongoDBの特徴のひとつは、あらかじめデータの形式を決めておかなくても、自由にデータを操作することができることです。データの形式があらかじめ決まっていないということで、「スキーマレス」ともいわれます。アプリケーションによっては、こうした形式をとるほうが作りやすいと重宝されることもあります。

MongoDBの強みは、処理速度と拡張性

MongoDBの特徴は、公式サイトである「MongoDB」の言葉を借りれば「Agile and Scalable(敏捷さと拡張性)」。
とくに、リレーショナルデータベース(RDB/関係データベース)と単純なKVS(Key-Valueストア:任意の保存したいデータ(value)に対し、対応する一意の標識(key)を設定し、これらをペアで保存する方式)の特徴をあわせもつのが強みで、データの生成、読み込み、追加・更新、削除などの動作を高速で実行できます。加えて、ドキュメントに対して複雑な条件による問い合わせ(クエリ)を実行し、結果を整列させたり、集計したりすることもできます。
しかし、トランザクション処理やデータ構造間の結合、SQLによるデータの照会・更新など、RDBで一般的な処理は行うことができません。

このように、MongoDBは、RDBに比べて読み込み速度が速く、インデックス機能が豊富、高い拡張性があるといった強みから、WEBシステム上でのバックエンドデータベース(ユーザと直接データのやりとりをするフロントエンドからデータ入力や指示などを受け、処理を実行したり結果を出力したり、記憶装置に保存したりする役割を担う)として最適であるといわれています。

ただ、最近MongoDBを業務で利用する組織が増えるにつれ、デメリットに関する声も聞かれるようになっています。
「PASTEBIN」というコンソール(コンピュータを操作するために使う入出力装置のセット)の出力やエラーログ、ソースコードなどを張り付けて共有するWebサイトにおいて、「Don't use MongoDB」というタイトルがつけられた投稿がなされたことが、WEB上で話題になりました。
投稿者は、数千万件ものユーザ管理にMongoDBを利用していて、10gen社(MongoDBの開発元)から有償でのサポートも受けていたそうです。
投稿者は8つの問題点を指摘しています。

1.ベンチマークで良い値を出すために、デフォルトでは安全でない方法で書き込みを行う。
2.原因不明なデータ消失が多い。(例えば、レプリケーションがエラーを出さずに途中で止まるなど)
3.書き込み時にグローバルにロックしてしまう。例えばブログの管理など、書き込みが多いものだとこれは大問題になる。
4.データのローディングが重いとシャーディング(データを複数のサーバに分散させる機能)がうまく動かなくなる。
5.mongosサーバは信頼性が低い。
6.一度全データセットが消えてしまった(ただしこれはバージョン1.6の話で1.8で修正済み)。
7.問題のある“出してはいけないもの”を安定バージョンとしてリリースしている。
8.負荷が高い状況だと、レプリケーションがうまく機能しない。

投稿者は、データベース開発者はパフォーマンスよりもデータを消失させないことを優先するべきであると指摘しています。

その他のNoSQL

なお、NoSQLには、大きく分けて3種類があります。
キーと値(バリュー)という比較的単純な構造でできている「キーバリュー型」。Riak、Redis、Memcachedなどがこのタイプで代表的なものです。
ついで、MongoDBと同じドキュメント志向のもの。このタイプには、MongoDB のほかにCouchDBというものもあります
次いで、キーに対して「列志向」と呼ばれるタイプ。代表的なものはHBase、Cassandraがあります。

MongoDBの特徴をよく理解し、強みと弱みを知った上で利用できるといいと言えます。



霆「閨キ縺ェ繧液ype | 繧ソ繧、繝励↑莉穂コ九″縺」縺ィ隕九▽縺九k
繧ィ繝ウ繧ク繝九い霆「閨キ繝輔ぉ繧「髢句ぎ IT&繝「繝弱▼縺上j繧ィ繝ウ繧ク繝九い繧呈アゅa繧句━濶ッ莨∵・ュ縺悟、ァ髮�オ撰シ�

type縺ォ謗イ霈我クュ縺ョ螟ァ謇九�莠コ豌嶺シ∵・ュ縺ョ豎ゆココ

type邱ィ髮�Κ縺碁寔繧√◆莠コ豌玲ウィ逶ョ莨∵・ュ縺ョ豎ゆココ繧偵#邏ケ莉九@縺セ縺吶€�

莨∵・ュ蜷阪�閨キ遞ョ蜷�邨ヲ荳�蜍、蜍吝慍
笆�諠ウ螳壼ケエ蜿趣シ�450荳�ス�800荳���亥渕譛ャ邨ヲ12繝カ譛亥��玖ウ樔ク�2繝カ譛亥���譌・譛ャ蝗ス蜀�r蜑肴署縺ォ縲∝�蝗ス縺ョ蜷�が繝輔ぅ繧ケ繧�惠螳�↑縺ゥ縲∝ロ縺丞�エ謇€繧偵#驕ク謚槭>縺溘□縺代∪縺吶€�

莠€逕ー陬ス闖捺�ェ蠑丈シ夂、セ

繧ェ繝シ繝励Φ繝昴ず繧キ繝ァ繝ウ

驟榊ア樒オ�ケ斐d諡�ス薙�繝ュ繧ク繧ァ繧ッ繝医↓繧医j逡ー縺ェ繧翫∪縺吶€�
諠ウ螳壼ケエ蜿趣シ�400荳����1000荳��
驟榊ア樒オ�ケ斐d諡�ス薙�繝ュ繧ク繧ァ繧ッ繝医↓繧医j逡ー縺ェ繧翫∪縺吶€�

譌・譛ャ繝槭う繧ッ繝ュ繧ス繝輔ヨ譬ェ蠑丈シ夂、セ

繧ェ繝シ繝励Φ繝昴ず繧キ繝ァ繝ウ

驟榊ア樒オ�ケ斐d諡�ス薙�繝ュ繧ク繧ァ繧ッ繝医↓繧医j逡ー縺ェ繧翫∪縺吶€�
笆シ蜿り€� 蟷エ菫ク650荳�€懶シ�1/12繧呈怦縲�髪邨ヲ��
蜩∝キ晄悽遉セ
�域擲莠ャ驛ス貂ッ蛹コ貂ッ蜊�2-16-3 蜩∝キ昴げ繝ゥ繝ウ繝峨そ繝ウ繝医Λ繝ォ繧ソ繝ッ繝シ��
蟷エ菫ク蛻カ�育オ碁ィ薙€∬�蜉帷ュ峨r閠��縺ョ縺�∴蠖鍋、セ隕丞ョ壹↓繧医j豎コ螳夲シ�譚ア莠ャ驛ス(譁ー螳ソ蛹コ)縲∝、ァ髦ェ蠎�(螟ァ髦ェ蟶ゆクュ螟ョ蛹コ)

繧ウ繧ッ繝ィ譬ェ蠑丈シ夂、セ

繧ェ繝シ繝励Φ繝昴ず繧キ繝ァ繝ウ

蜑崎�縺ョ縺皮オ碁ィ薙�繧ケ繧ュ繝ォ遲峨r閠��縺励※豎コ螳壹@縺セ縺吶€�譚ア莠ャ驛ス縲∝、ァ髦ェ蠎�

譬ェ蠑丈シ夂、セ繧ェ繝シ繝�ぅ繧ェ繝�け繝九き

繧ェ繝シ繝励Φ繝昴ず繧キ繝ァ繝ウ

諠ウ螳壼ケエ蜿趣シ夂オ碁ィ薙�繧ケ繧ュ繝ォ繧定€��縺ョ荳翫€∵アコ螳壹@縺セ縺吶€�譚ア莠ャ驛ス �域枚莠ャ蛹コ縲∫伴逕ー蟶ゑシ�

その他の条件で探す

typeでは職種や勤務地、仕事探しで譲れないこだわりの条件など、様々な切り口から自分の働き方に合った求人を探すことができます。気になるキーワードやテーマから転職・求人情報をチェックしてください。

転職活動を進める

あなたの転職活動をサポートする、typeの各種サービスをご案内します。

  • スカウト

    スカウト

    匿名だから安心!あなたに興味を持った企業の採用担当から直接メールが届くサービスです。

  • オファーDM

    オファーDM

    あなたが登録した情報と近い内容の募集条件の企業から、メールが届くサービスです。

  • 検討中リスト

    検討中リスト

    興味を持った求人を保存しておくことができ、気になる求人を一覧にて比較検討できます。