個人的に感じたMongoDBとその他RDBMSと比較した時のメリットデメリット

2 min read

こんにちは、無能です。

ざっと調べて思ったことをまとめておきます。

構造化が最初から決まっていなかったり、開発者ライクで柔軟な対応が出来る?

例えば、MariaDBなどはpasswordというフィールド名を持つテーブルがある場合は間違えてpassw"a"rdとして使用しようとするとデータの整合性が取れずエラーが起きてしまいます。

つまりはRDBMSとして、スキーマに従ってデータを扱うための特性にあります。

それと比較してMongoDBは"NoSQL"だとか、ドキュメント志向であるが故にミスタイプのpassw"a"rdだとしても格納を行ってくれることになります。正確性を要さない為です。

動的なデータを扱ったり、開発者からしたときに関してもスケールアップは容易であると言えるのでは無いでしょうか?もちろん、データを格納するときの整合性が取れないというものはデータを扱うDBとしていかがなものか、という気持ちはありますが一応はMongoDBから他RDBMSへの変換を行うことは可能ではありその汎用性があるのであれば完全に使ってはいけないという訳ではないように思います。

MongoDBでの成熟してきたものに対して、後から必要になれば他のRDBMSに移行すればよいものの最初からある程度のデータベース構造が決まっているのであればあえて使う必要は無いのかもしれません。

なんにせよ、開発者目線から見た時のDBとしての扱いのしやすさにはMogoDBに優位性は少なからずあると言えるかと思います。

漏れなくDBに格納したい時にも力を発揮出来るかもしれない

例えば、複数サイトデータを扱うときにもとりあえず全てMongoDBにぶん投げてしまいuserだったりuseridだったり、そんな場合でもとりあえずぶっこんで後からまとめて編集してしまったり。同じコレクション上に全て格納してしまえば後から編集できるのは強みです。実際に手軽に置換が出来ました。
logとしてDBに格納したい時にも全て漏れなく何でもぶっこんでいけるため、データの漏れ無くあらかた網羅出来るかもしれません。

かなり批判が多かったり、使う意味が無いとまで言われているのを見ましたが実際に使ってみると容易に扱えると感じる面はかなり多いのでこれからも使うかもしれないし使わないかも。

それでは。

またよろしくお願い致します。