2016-11-25 12 views
0

私はほとんどがSQLのもので作業していたので、私はNo-SQLデータベースでの経験がありません。しかし、今私のデザインは私が達成しようとしているものに利益をもたらすと思う。私はいくつかの製品の価格を監視し、それらをdbに保存したい。当初、製品の数は限られており(500)、私は1日1回(最高365ドル)の価格を監視します。NoSQL dbまたはSQL?

オリジナルの考えは、テーブルprice_historyid|date|priceのようにしていたので、1年間は365日* 500製品の行数を持ちます。

(正しく読んでいれば)文書形式(JSON形式など)を使用できるNo-SQLデータベースを使用すれば、単一の製品の履歴をより迅速に検索できますか?このデータ量のために

、多分SQLはOKですが、どのような場合:

  • 列が(それが成長し続ける私だけではなく、年間の1年分のデータを保存したい
  • price_historyテーブルの上に上げます)
  • 製品がそう

を増やし、それは努力が上記の私のパラダイムではありません-SQLのDBSについて読む価値がありますか?

答えて

2

作業負荷に適しているかどうかを確認するには、NoSQLの詳細を読む価値があります。より多くの情報は良いことです。

しかし、今まで説明した問題については、ソリューションとしてNoSQLを呼び出すことはありません。

あなたの質問にはとタグ付けされていますので、それはあなたが検討しているSQLデータベースだと思います。たとえそれが移植された後でも、MySQLテーブルに列を追加することは間違いありません。テーブルにあるデータが多いほど、時間がかかります。しかしそれは可能です。

テーブルをこのように再構成しながらクエリを続ける必要がある場合は、pt-online-schema-changeのようなツールを使用してください。

365 * 500または182,500行になると1年分のデータのようです。率直に言えば、これはかなりの量のデータです。 MySQLデータベース管理者は、大規模なデータベースを扱うことがよくあります。

私が現在管理しているデータベースの1つは、約45億行で、1日に2〜1,000万行増加しています。インデックスとパーティションの組み合わせを使用して、クエリが可能な限り実行されるようにします。私は、それぞれ1億以上の行のデータを持つ他のテーブルを管理しています。

データベースがSQLまたはNoSQLでないため、無期限に成長することができます。データのスケーラビリティ戦略には、古いデータをアーカイブまたは要約するためのポリシーが含まれている必要があります。

SQLとNoSQLの選択は、正規化されたSQLと非正規化されたSQLを選択することと多かれ少なかれ同じです。つまり、格納する必要があるデータの構造やボリュームではなく、データに対して実行するクエリの種類を最適化する能力に基づいてDBMSを選択します。

データは基本的にデータウェアハウスとして使用され、クエリは集計計算やトレンドの計算などが行われていると思います。そのためには、専用の列ストアデータベースを検討することもできます。これはまだSQLデータベースですが、OLAPクエリを最適化する方法でデータを格納します。列指向データベースの

としては、

関連する問題