SQL(MySQL)とNoSQL(CouchDB)[終了]


126

大量のデータを保存する必要のあるスケーラビリティの高いアプリケーションを設計している最中です。たとえば、ユーザーに関する多くの情報や、メッセージ、コメントなどの多くのものを格納します。以前はMySQLを使用したことがありましたが、今はSQL以外のcouchdbなどの新しいものを試してみることにしました。

誰かこれについて何か考えやガイダンスはありますか?


3
ゲー、CW。そして、私は本当の担当者と街頭の信用を得ることを望んでいました。:-)
Franci Penov 2010

1
データセットについてもう少し説明してもらえますか?
ミケラル

4
これを閉じる必要がないことを望みます。これらの質問は重要ですが、何らかの理由でSOに属していません。
Neil Chowdhury

回答:


191

Dare Obasanjoの最近のブログ投稿からの引用です。

SQLデータベースは自動転送のようなもので、NoSQLデータベースは手動転送のようなものです。NoSQLに切り替えると、リレーショナルデータベースシステムでシステムが自動的に処理する多くの作業を担当します。オートマチックトランスミッションよりもマニュアルを選択した場合に似ています。次に、NoSQLを使用すると、データベース層からリレーショナルデータベースによって実行される多くの整合性チェックを排除することにより、システムのパフォーマンスを向上させることができます。繰り返しますが、これは、手動変速機と自動変速機の車を運転することで、車のパフォーマンスを向上させる方法と似ています。

しかし、最も注目すべき類似点は、ほとんどの人が手動トランスミッション車の利点を実際に利用できないのと同じように、私たちの運転の大部分は通勤中に交通に座っているため、同様の厳しい現実がありますほとんどのサイトはGoogleやFacebookの規模ではないため、BigtableやCassandraは必要ありません。

少なくともある程度の経験があるMySQLから、経験のないCouchDBへの切り替えのみを追加できるということは、まったく新しい問題セットに対処し、さまざまな概念とベストプラクティスを学ぶ必要があることを意味します。これ自体は素晴らしいですが(私はMongoDBを使って家で遊んでいますが、とても気に入っています)、そのプロジェクトの作業を見積もるときに計算する必要があるコストであり、未知の利点を約束しながら未知のリスクをもたらします。知らないテクノロジーに基づいている場合、プロジェクトを予定どおりに、成功したい/必要とする品質でプロジェクトを実行できるかどうかを判断するのは非常に困難です。

さて、もしあなたがチームにNoSQL分野の専門家がいるなら、ぜひともそれをよく見てください。しかし、チームの専門知識がなければ、新しい商用プロジェクトのためにNoSQLに飛びついてはいけません。

更新:あなたが始めた暖炉にガソリンを投げるために、SQLキャンプの人々からの興味深い記事が2つあります。:-)

私のNoSQLが死ぬことを待つことができない(元記事が消えて、ここだコピーが
のNoSQL考え方を戦い、しかしこれは、抗NoSQLのワンピースではないです
アップデート:ここまあのNoSQLについての興味深い記事である
のNoSQLのセンスを作ります


2
SQLソリューションをスケーリングするプロセスは、機能と関係を削除するプロセスです。だから私はこれが完全に公正な評価だとは思いません。また、私はこのようにNoSQLデータベースをグループ化しないでください。たとえば、Cassandaはスケールアップのみに焦点を当てていますが、CouchDBはAPIのスケールダウンと使いやすさを考慮し、そのAPIを可能な限りスケールアップできるようにしています。
ミケラル

これが引用へのリンクでしょうか?25hoursaday.com/weblog/2010/03/29/...
edosoft

ああ、そうです。彼がそれを公開ブログ投稿にすることもできなかった。投稿を更新します。
Franci Penov 2010

1
投稿ありがとうございます!「NoSQLが死ぬのを待てない」というリンクは機能しません。チェックしてみてください。
kbpontius 2015

「制限といぼの十分に列挙されたリストを、よく理解されていない新しい制限といぼのリストと交換した」-NoSQLが死ぬのを待つことができない
Yarin

3

今日の唯一の実際のソリューションは、スケールアウトまたはシャーディングを中心に展開しているようです。最近のすべてのデータベース(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

お役に立てば幸いです。


0

最良のオプションの1つは、スケーラビリティをサポートするMongoDB(NOSql dB)を選択することです。SQLの行やテーブルとは異なり、ドキュメントの形式でビッグデータ以外の大量のデータを格納します。これは、データのシャーディングに続く高速です。レプリカセットを使用します。プライマリデータベースサーバーをベースとする複数のサーバーを維持するデータ保証を保証するため。言語に依存しません。柔軟な使用


Couchbase、Cassandra、AeroSpikeなど、言及する機能をサポートするすべてのデータベースのため、意見を「最高」にバックアップする必要があります。
OneCricketeer 2016
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.