MongoDBを利用する際の注意点

弊社では色々なDBを利用していますが、Mysqlの代替的にMongoDBを利用しています。利用していて不便な点がいくつかありますので、それをまとめてみました。

 

スキーマレスのため、ゴミのようなデータが入ってしまう

NOSQLなので当然なのですが、どんなデータでも書き込めてしまうというのがドキュメント志向DBの一番の特徴です。ここを許容できれば問題無いのですが、ゴミデータを許容できるシステムというのもそんなに無いと思うので、悩みどころになる点です。

 

AWSでMongoDBの専用サービスが無い

専用サービスが無いため必然的にEC2を利用することになり、Iaasの環境の場合はネックになります。AWS以外のIaasにもMongoの専用サービスというのは無さそうです。

 

基本的に3台でクラスタを組むため、台数が増える

Mongoの場合マスター+スレーブ2台かマスター+スレーブ+コントローラの構成が基本になりますので、コストが増えます。

 

良さそうなGUIクライアントが無い

SequelProのようなサーバ側にインストール不要なGUIクライアントが無いため、基本的にコマンドラインの操作をするしかないケースが多いかと思います。MongoのGUIツールもあることはあるのですが、サーバ側にインストールしてWEBサーバを立ち上げてブラウザでアクセスするもの(phpMyAdminのようなもの)しかなく、ただでさえSQL文が使えないのに余計に不便です。

 

MongoDBは利用するメリットもかなり多いですが、根本的にRDBとは違うDBですので、そこを踏まえて利用するのがキーになります。