![SQLまたはNoSQLデータベースをいつ使用しますか? [閉鎖]](https://linux33.com/image/73859/SQL%E3%81%BE%E3%81%9F%E3%81%AFNoSQL%E3%83%87%E3%83%BC%E3%82%BF%E3%83%99%E3%83%BC%E3%82%B9%E3%82%92%E3%81%84%E3%81%A4%E4%BD%BF%E7%94%A8%E3%81%97%E3%81%BE%E3%81%99%E3%81%8B%EF%BC%9F%20%5B%E9%96%89%E9%8E%96%5D.png)
私はいつSQLデータベース(例:MariaDB)を使用し、いつNoSQLデータベース(たとえばMongoDB)を使用するかを理解したいと思います。一方が他よりも優れた特定の状況がありますか?
答え1
SQLデータベースからNoSQLデータベースに移行することを決めたとき、私が考慮すべき主な点はプロジェクトの規模とビジョンでした。
SQLデータベースの最大の利点は、ACIDコンプライアンスで、可能な限り最短時間内に常に良い答えを得ることができることです。これは、正しく習得されれば信頼できることが証明されたシンプルで「古い」技術です。実際には、ビッグデータの新しいトレンドに対応するように設計されていない可能性があり、負荷管理のためにデプロイしようとするときにSQLライブラリを維持することは少し悪夢になる可能性があります。
NoSQLデータベース(MongoDBやCassandraなど)は、データがモデルと比較して大きくなりすぎる特定の状況のために構築されました。彼らはデータベースを分散させ、もはや古い酸性規制に従うことができない状況にあるという考えから始めます。それから彼らはそれを利用して独自の機能を開発することにしました。たとえば、Cassandraは、Facebookでサイトユーザー間のメッセージングをサポートするために構築したようです。デフォルトでは、世界中に分散したデータベースとして構築され、データセンター全体を失ってもデータは失われず、サイトは1秒もダウンしません。これらのインフラストラクチャは、システム内のあらゆる場所で完全に最新の状態に保つために、情報に依存する他のSGDBに対してはメンテナンスがほとんど不可能です。
最後に、NoSQLデータベースは基本的にGoogleとFacebookの要件を満たすように設計されていることも確認する必要があります。
FacebookがNoSQL Foundationをリリースしたときと同じように、プロジェクトが何百万もの同時ユーザーを処理する必要がある要件を満たさない限り、ACID準拠に基づく以前のバージョンのMariaDBまたはpostgreSQLがより高速で正確で構築および開発簡単になります。
あなたも一度見てください。NewSQLの動き彼らは、かなり古いデザインの選択を修正するためにSQLエンジンを再実装した開発者で構成されています。ちょっと見ましたが、この技術を使っているサイトは覚えていません。また、SQLライブラリとNoSQLライブラリ(私の友人が正常に動作するpostgre / Mongoスタックを構築する)を使用するハイブリッドソリューションを使用する必要があるかもしれないことに注意してください。これはより複雑かもしれませんが、より複雑かもしれません。強い。