大量のデータを保存する必要のあるスケーラビリティの高いアプリケーションを設計している最中です。たとえば、ユーザーに関する多くの情報や、メッセージ、コメントなどの多くのものを格納します。以前はMySQLを使用したことがありましたが、今はSQL以外のcouchdbなどの新しいものを試してみることにしました。
誰かこれについて何か考えやガイダンスはありますか?
大量のデータを保存する必要のあるスケーラビリティの高いアプリケーションを設計している最中です。たとえば、ユーザーに関する多くの情報や、メッセージ、コメントなどの多くのものを格納します。以前はMySQLを使用したことがありましたが、今はSQL以外のcouchdbなどの新しいものを試してみることにしました。
誰かこれについて何か考えやガイダンスはありますか?
回答:
Dare Obasanjoの最近のブログ投稿からの引用です。
SQLデータベースは自動転送のようなもので、NoSQLデータベースは手動転送のようなものです。NoSQLに切り替えると、リレーショナルデータベースシステムでシステムが自動的に処理する多くの作業を担当します。オートマチックトランスミッションよりもマニュアルを選択した場合に似ています。次に、NoSQLを使用すると、データベース層からリレーショナルデータベースによって実行される多くの整合性チェックを排除することにより、システムのパフォーマンスを向上させることができます。繰り返しますが、これは、手動変速機と自動変速機の車を運転することで、車のパフォーマンスを向上させる方法と似ています。
しかし、最も注目すべき類似点は、ほとんどの人が手動トランスミッション車の利点を実際に利用できないのと同じように、私たちの運転の大部分は通勤中に交通に座っているため、同様の厳しい現実がありますほとんどのサイトはGoogleやFacebookの規模ではないため、BigtableやCassandraは必要ありません。
少なくともある程度の経験があるMySQLから、経験のないCouchDBへの切り替えのみを追加できるということは、まったく新しい問題セットに対処し、さまざまな概念とベストプラクティスを学ぶ必要があることを意味します。これ自体は素晴らしいですが(私はMongoDBを使って家で遊んでいますが、とても気に入っています)、そのプロジェクトの作業を見積もるときに計算する必要があるコストであり、未知の利点を約束しながら未知のリスクをもたらします。知らないテクノロジーに基づいている場合、プロジェクトを予定どおりに、成功したい/必要とする品質でプロジェクトを実行できるかどうかを判断するのは非常に困難です。
さて、もしあなたがチームにNoSQL分野の専門家がいるなら、ぜひともそれをよく見てください。しかし、チームの専門知識がなければ、新しい商用プロジェクトのためにNoSQLに飛びついてはいけません。
更新:あなたが始めた暖炉にガソリンを投げるために、SQLキャンプの人々からの興味深い記事が2つあります。:-)
私のNoSQLが死ぬことを待つことができない(元記事が消えて、ここだコピーが)
のNoSQL考え方を戦い、しかしこれは、抗NoSQLのワンピースではないです
アップデート:ここまあのNoSQLについての興味深い記事である
のNoSQLのセンスを作ります
今日の唯一の実際のソリューションは、スケールアウトまたはシャーディングを中心に展開しているようです。最近のすべてのデータベース(NoSQLおよびNewSQL)は、アプリケーションがシャーディングコードなどを必要とせずに、データベースレイヤーですぐに使用できる水平スケーリングをサポートしています。
残念ながら、信頼できる古き良きMySQLの場合、シャーディングは「そのまま」提供されていません。ScaleBase(免責事項:私はそこで働いています)は、完全なスケールアウトソリューションのメーカーであり、必要に応じて「自動シャーディングマシン」です。ScaleBaeはデータとSQLストリームを分析し、DBノード間でデータを分割し、実行時に集計します。そのため、必要はありません。そして、それは無料でダウンロードできます。
私を誤解しないでください、NoSQLは素晴らしいです、それらは新しいです、新しいものはより多くの選択肢であり、選択肢は常に良いです!! しかし、NoSQLの選択には代償が伴います。必ず支払うことができるようにしてください...
MySQL、NoSQLに関するその他のデータをここで確認できます...:http : //www.scalebase.com/extreme-scalability-with-mongodb-and-mysql-part-1-auto-sharding
お役に立てば幸いです。
最良のオプションの1つは、スケーラビリティをサポートするMongoDB(NOSql dB)を選択することです。SQLの行やテーブルとは異なり、ドキュメントの形式でビッグデータ以外の大量のデータを格納します。これは、データのシャーディングに続く高速です。レプリカセットを使用します。プライマリデータベースサーバーをベースとする複数のサーバーを維持するデータ保証を保証するため。言語に依存しません。柔軟な使用