2012-03-02 28 views
1

データベースシステムの「タイプ」を決定する必要のあるWebアプリケーションを開発する予定です。私はDjango/PythonでWebアプリケーションを開発する予定です。どのようなタイプのデータベースを使用しますか?

私のアプリケーションには、ますます成長しつつある(数百万の)レコードと 'k'列(1〜100)を持つテーブルが1つだけ含まれています。残念ながら、私は 'k'の数を制御することはできません。 「k」のサイズは、時間の経過と共に(1-100の間に)増加または減少し得る。私はパフォーマンスに関してトレードオフを望みません。

どのようなタイプのデータベースを使用しますか?私の最初の反応は以下の通りである。

  • のMySQL:ルックス:店は私の法案
  • XMLデータベースに適合しないニースのオプションが、(キー、値):私は、このオプションに
  • Redisのを避けたいですタスクには良いですが、望ましいパフォーマンスが得られますか?私はわからないこの

編集 特定の要件に:リレーショナルDB指向

  • オブジェクト

    をk-列で検索を実行すると「n」はレコードのサブセットを取得します。 TwitterやFacebookに似たREST APIを提供する予定です。例えば、http://api.twitter.com/1/users/show.json?screen_name=Ashton。これが私が実装しようとしているものであれば、screen_nameは列の1つになります。同様に、user_id、友人数などの他の列に基づいた他のパラメータもあります。

  • +1

    データベースの決定は、そこに保存するデータではなく、作成するクエリに焦点を当てる必要があります。テキストファイルに常に付加されているK個のフィールドのN個のレコードを書き出すことは、州の要件を満たしますが、あなたが求めているものではないことは間違いありません。だからあなたは質問を言い換えて、実行したい他の操作についてもっと詳しく話すべきです。 –

    +0

    @WillHartungあなたのフィードバックに基づいて編集を追加しました。私はそれが今より明らかであることを願っています。 – Dexter

    答えて

    2

    あまりにも多くの先入観でこの決定に入るかもしれないようです。なぜあなたはMySQLを避けたいのですか?厳格なスキーマを避けているからですか?

    Redisはデータボリュームのためにフィット感はないが、キー/値ストアであるとは思わない。

    データは、MongoBDのかなりのテキストボックスのように聞こえます。あなたはそれを見ましたか?

    +0

    はい、私は厳格なスキーマのためにMySQLを避けたいと思います。 Redisは、タプルのキーを1つしか持てないため、適合しません。たとえば、(1,2,3,4)は、Redisの{1:2,3,4}と表されます。したがって、私はちょうど '1'を照会することができます。私は、レコードのすべての値に対して柔軟な照会が必要です。上記の例では、1/2/3/4です。私はMongoDBを見ていきます。 – Dexter

    +1

    私が赤目についてのポイントを作った理由は、それが誤解に基づいていることを知っていたからです。 redisは、単純なキー/値ストア以上の_lot_です。私はまだ問題にぶつかりませんでしたが、私はモデル化できませんでした。同じプリミティブを使用してデータをより複雑な製品として保管していますが、複雑さを隠すことはできません。しかし、ええ、私はあなたがmongodbがおそらくあなたのために最適であると思うでしょう。完全に柔軟にスキーマ、特別なクエリ、印象的な速度。それは、(ほとんど)リレーショナルデータベースのようにクエリを行うことができるスキーマレスのストアです。 – menacingly

    +0

    Redisのコマンドを実行すると、データを高度に複製する必要があります。とにかく、私はMongoDBを調べます。しかし、私がレディスで自分のデータをモデル化できると思うなら、それを見てみたいと思います。 – Dexter

    関連する問題