2016-11-25 99 views
0

我对No-SQL数据库没有经验,因为我主要从事SQL数据库工作。但我认为现在我的设计可能会对我尝试完成的任务有所裨益。我想监视一些产品的价格并将它们保存在数据库中。一开始,产品数量将受到限制(500个),我会每天监测一次价格(因此每年最多365个)。NoSQL数据库或SQL?

原以为有一个表price_history列像id|date|price - 所以一年我将有365天* 500产品的行数。

但愿受益于使用无SQL数据库,在那里(如果我正确地读)我可以使用的文件格式(例如JSON风格),并且将查询历史上的一个单一的产品更快?

对于这个数据量,也许SQL是确定的,但要是:

  • 列在price_history表
  • 我想保存数据年增长不仅为一年(它会继续增长)
  • 产品增加

那么,是不是值得的阅读上面我范例无SQL DBS?

回答

2

对于NoSQL来说,看看它是否适合您的工作量是绝对值得的。更多信息是一件好事。

然而,一无所知,你到目前为止描述调用出来的NoSQL作为解决方案的问题。

你与标记你的问题,所以我认为这是你正在考虑的SQL数据库。将列添加到MySQL表中是绝对有可能的,即使它已经被填充了。表中的数据越多,需要的时间越长。但这是可能的。

如果需要继续查询的表,而它的这种方式被重组,像pt-online-schema-change的工具可以提供帮助。

这听起来像是一年的价值数据为365 * 500或182,500行。坦率地说,这是一个非常适度的数据量。 MySQL数据库管理员经常处理更大的数据库。

在我目前管理的数据库之一

一表约4.5十亿行,它是由每天2-10万行增长。我使用索引和分区的组合来确保查询的执行尽可能好。我管理其他每个数据行数超过1亿行的表。

没有数据库,SQL或NoSQL,可以让你无限期地增长。任何数据可伸缩性策略都必须包含一些归档或汇总旧数据的策略。

另一条建议我给的是,SQL和NoSQL之间的选择或多或少相同演习的标准化SQL和非规范化SQL之间进行选择。也就是说,您可以根据DBMS根据数据优化查询类型的能力来选择DBMS,而不是需要存储的数据结构或数据量。

我猜你的数据基本上将被用作数据仓库,并且你的查询将进行聚合计算或计算趋势等。为此,您可以考虑一个专门的专栏数据库。这仍然是一个SQL数据库,但它以针对OLAP查询进行优化的方式存储数据。面向列的数据库

实例包括: