2011-02-04 6 views
12

私はCouchDBをベースにしたシステムを設計しています。ユーザー、メインデータストア、ロギングなどのリストがいくつかあります.CouchDBデータベースの範囲はどうすればいいですか?私は各コンポーネントごとに別々のデータベースを用意するか、すべてを1つにまとめるだけで、各ドキュメントに「タイプ」プロパティを使用する必要がありますか?私は個々のデータベースが非常に幸せに大きくなることは知っていますが、データベースを分割するのではなく、すべてを1つのデータベースに保存することによって影響を受けるビューのパフォーマンスですか?基本的に、トレードオフは何に関係していますか?別のCouchDBデータベースはいつ使用しますか?

乾杯。

答えて

13

いい質問です。

これは基本的に最適化の問題だと思います。良いアイデアは、あまりにも早く(複数のデータベースに分けて)最適化することではありません。 1つの例外として、ログが他のすべてのデータを支配し、頻繁に圧縮が必要な場合があります。ログをすぐに分割する可能性があります)。

ビューのパフォーマンスには影響しません。あらかじめ定義されたクエリ(ビュー定義)と引き換えに、CouchDBは常に迅速なビュー結果を保証します。

複数のデータベースに分割するかどうかは、通常、認証と権限の問題によって異なります。通常のWebサーバーのフロントエンドを使用している場合は、それほど心配はありません。

すべてのビューと同様に、の場合は、と頻繁にクエリします。クエリは、応答時間が速く、ビューを最新の状態に保ちます。クエリの遅延により、次の処理のために処理が行われます。プロダクションでは、これは大きな問題ではありません。

+1

ありがとう、それは私が後にした答えです!私の本能は時期尚早の最適化ではなく、すべてを1つのデータベースに保存することから始めましたが、ログを分割する提案は良いと思います。 – stompydan

関連する問題