两种类型的数据,所以两种类型的数据库?

时间:2013-08-22 12:47:14

标签: mysql sql database performance nosql

对于社交网站,我需要提出一个数据库。该应用程序是用Java和Java编写的。最初将托管在VPS上。

大致分类有两种类型的数据存储在后端:

 1. dynamic lists which are:

     - frequently appended to   
     - frequently read       
     - sometimes reduced    

 2. fixed set of data keyed by a primary key(sometimes modified).

 "For serving any page, I need to have access to both kind of data!"

正如其他所有SN网站所要求的那样,我们需要考虑在未来轻松扩展,但除了我们的团队和资源也非常有限。我们想从一个或两个中等大小的VPS&添加更多服务器作为数据和负载增长。

就我个人而言,我通常更喜欢大型社区使用的东西,所以当然MySQL是一个很大的选择,但它并不适合我们的整个需求。它可以用于第二类数据(在上面的列表中),即用于存储固定的列/数据集,但不是理想的存储动态列表(即第一类)。 那么我应该只使用第二个数据库来适应那种类型的数据(两个数据库,每个数据库只包含最适合他们的数据)?(有人建议Cassandra存储第二类数据。)  该怎么办?

1 个答案:

答案 0 :(得分:1)

当您需要事务完整性并且有一组固定的关系要映射时,请使用传统数据库。

当您有多个对象属性存储在平面结构中时,请使用文档数据库;或者模式(对象的属性)可能随时间而变化的地方。这是传统数据库系统的弱点之一;更改模式是可能的,但有很多性能副作用。在文档数据库中,存储对象的属性对系统的整体性能几乎没有影响 - 更实际的是,可以修改存储的关于对象(它们的属性或“列”)的信息,而不必担心模式。

为临时数据使用键值存储。

根据您的描述,我没有看到任何需要关系数据库的用例。