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ですので、そこを踏まえて利用するのがキーになります。