6

過去数年にわたっていくつかのアプリを設計し、パフォーマンスとスケーラビリティの側面を継続的に改善してきた MySQL の分野に満足しています。また、memcached を使用して、頻繁にクエリされる結果セットでアプリケーション側の速度を向上させた経験もあります。そして最近、Amazon SDB を e コマースの実験用の主要な「データベース」として実装しました。

簡単に言うと、SDB サービスを使用する理由として、スキーマのないデータベース構造を使用することで、プロジェクトの論理的な問題に集中し、コンテンツをデータ ストアにすばやく蓄積できるということがすぐにわかりました。つまり、事前に製品の属性のすべての可能な順列を設定して正規化する必要はありません。製品のロードを開始するだけで、SDB は利用可能なすべてのものを記憶します。

プロジェクトの最初の数回の繰り返しをなんとかやり遂げ、データへの単純なインターフェイスをセットアップする必要があるので、MySQL での作業で当然のことと思っていた問題に取り組んでいます。例: select ステートメントでグループ化し、構文を "items 50 to 100" に制限します。SDB のスキーマ フリー アーキテクチャを使用して得た簡単な利点は、1800 項目をわずかに超える結果セットのクエリ/ループのパフォーマンス ヒットで失われました。

今、私は Tokyo Cabinet のようなプロジェクトについて読んでいます。これは、メモリ内のキー値ストアの概念を拡張して、疑似リレーショナル機能を途方もなく高速に提供しています (14x どこかで読んだ)。

私の質問: アプリケーション デザイナー/開発者として、プロジェクトの各段階でどの DB 技術が最も適切かを評価するために使用できる基本的なガイドラインやヒューリスティックはありますか?

例: アプリケーションの論理的/技術的な未知数がデータ構造を流動的にするプロトタイピング段階: SDB を使用します。ユーザーの成果物が優先されるより成熟した段階では、従来のツールを使用して、並べ替え、グループ化、またはページ付けロジックの作成に開発時間を費やす必要はありません。

これらのツールの実際の経験は非常に高く評価されます。

ありがとうございます!

シャヒーブ R.

4

2 に答える 2

5

あなたが見つけている問題は、RDBMSスペシャリストが代替システムのいくつかを黄疸の目で見ている理由です。はい、代替システムは特定の要件を非常に高速に処理しますが、同じデータで何か他のことをしたいと思うとすぐに、最も短いものが突然遅れます。対照的に、RDBMSは通常、より大きなアプロムでバリエーションを管理します。最もフリーテストが処理するようにマイクロ最適化されている特殊なワークロードのフリーテストほど速くはないかもしれませんが、他のクエリを処理するように求められたときに、それほど速く劣化することはめったにありません。

于 2009-04-13T05:12:58.357 に答える
4

新しいソリューションは特効薬ではありません。

従来のRDBMSと比較して、これらのシステムは、他の側面(クエリ機能の低下、結果整合性、特定の操作のひどいパフォーマンス)をトレードオフすることにより、いくつかの側面(スケーラビリティ、可用性、または単純さ)を改善します。

これらは、従来のデータベースの代替としてではなく、既知の特定のニーズに特化したツールであると考えてください。

たとえばAmazonSimpleDBを例にとると、SDBは基本的に巨大なスプレッドシートです。それがデータのように見える場合は、おそらくうまく機能し、優れたスケーラビリティとシンプルさで多くの時間とお金を節約できます。

システムに非常に構造化された複雑なクエリが必要であるが、これらのクールな新しいソリューションの1つを主張する場合、すぐに、アマチュア風で設計が不適切なRDBMSを、固有の問題をすべて抱えて再実装していることに気付くでしょう。

この点で、これらがニーズに合うかどうかわからない場合は、従来のRDBMSで最初の数回の反復を行う方が実際には良いと思います。これは、特に単一サーバーの展開と適度な条件下で最高の柔軟性と機能を提供するためです。ロード。(CAP定理を参照)。

データがどのように表示され、どのように使用されるかについてより良いアイデアが得られたら、別のソリューションでニーズを一致させることができます。

クラウドでホストされるソリューションのシンプルさが必要であるが、リレーショナルデータベースが必要な場合は、Amazon RelationalDatabaseServiceをチェックアウトできます。

于 2011-10-25T02:34:08.720 に答える