1

对于社交网站,我需要提出一个数据库。该应用程序是用 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 站点的要求,我们需要考虑在未来轻松扩展,但除此之外,我们的团队和资源也非常有限。我们希望从 1 或 2 个中型 VPS 开始,并随着数据和负载的增长添加更多服务器。

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

4

1 回答 1

1

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

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

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

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

于 2013-08-22T13:03:45.330 回答