何时使用什么数据库?即,在选择要使用的数据库时,我应该查看哪些参数?

时间:2012-11-27 09:17:40

标签: nosql bigdata graph-databases key-value-store document-database

我正在开发一个有多个模块的系统,

  1. 社交媒体用户人口统计 - (文件) - 姓名,地点,兴趣,工作,教育
  2. 社交媒体用户连接 - (图表) - 朋友
  3. CRM - (行和列) - 电信+银行等
  4. 仅举几例。我很确定我已经在每个记录中越过了数百万条记录。

    当我寻找可供选择的NoSql数据库时,我在每个类别中至少有10个。对于文档数据库,我有一个从MongoDBDjonDB的arraylist。当我寻找图形数据库时,情况也是如此,依此类推。此外,我还看到了其他关键值存储数据库,列式数据库等,仅举几例http://nosql-database.org/

    所以我想知道是否有任何通用的拇指规则,我应该在这些数据库中进行选择,优化柱状数据库时,键值存储最适合的数据类型等等。

    哪种类型的数据适合哪些数据库?为什么?最重要的是 对于什么类型的数据以及为什么最适合的数据库是什么?

    由于

1 个答案:

答案 0 :(得分:2)

这是一个非常开放的问题,但我会试一试。

要记住的一些事情:

  1. 选择一个围绕它的社区有一个很好的(不是很好的)社区的数据库。您可能会发现FooDB并声称可以执行您想要的所有操作,但没有人为此做出贡献,那么您将围绕一项死技术构建应用程序。您需要积极的贡献,许多客户都有生产部署,理想情况下不是第一个版本。

  2. 尝试找到能够很好地融合的技术。例如,Elastic Search,MongoDB,CouchDB,Couchbase或多或少都使用JSON。这应该可以帮助您缩小技术选择范围。

  3. 我不会尝试将自己传播得太瘦。每种类型的数据库(图形,文档,行/列,键值对)都有自己的学习曲线。学习如何以非规范化方式建模数据需要相当长的时间。您拥有的品种越多,维护所有不同数据库的难度就越大。

  4. 我不知道为什么我很少将此视为建议,但我会选择您真正想要开发的内容。查询语法是否直观且有趣?如果没有,你会讨厌在其中发展。这不是最重要的因素,但我认为应该考虑它。