我正在开发一个具有多个模块的系统,
- 社交媒体用户人口统计 -(文档)- 姓名、地点、兴趣、工作、教育程度
- 社交媒体用户联系 -(图) - friend
- CRM -(行和列)- 电信 + 银行等
仅举几例。我很确定我已经在其中每一项中突破了数百万条记录。
当我寻找可供选择的 NoSql 数据库时,每个类别至少有 10 个。对于文档数据库,我有一个从 MongoDB
到 DjonDB
的数组列表。当我寻找图形数据库时,情况也是如此,等等。我还看到了其他键值存储数据库、列式数据库等,仅举几例:http://nosql-database.org/ .
所以我想知道在这些数据库中进行选择时是否应该遵循任何通用的经验规则,何时优化列式数据库,键值存储最适合什么类型的数据等等。
最适合什么类型的数据的数据库是什么?为什么?最重要的是 对于什么类型的数据来说,最不适合的数据库是什么?为什么?
谢谢
最佳答案
这是一个非常开放的问题,但我会尝试一下。
需要记住的一些事情:
选择一个拥有优秀(不是优秀,而是优秀)社区的数据库。您可能会发现 FooDB,它声称可以做您想做的所有事情,但没有人为它做出贡献,那么您将围绕一项死技术构建您的应用程序。您需要积极的贡献、大量进行生产部署的客户,并且最好不是第一个版本。
尝试寻找可以很好地协同工作的技术。例如,Elastic Search、MongoDB、CouchDB、Couchbase 都或多或少地使用 JSON。这应该可以帮助您缩小技术选择范围。
我不会尝试让自己太过分散。每种类型的数据库(图形、文档、行/列、键值对)都有自己的学习曲线。学习如何以非规范化方式对数据建模需要相当长的时间。种类越多,维护所有这些不同的数据库就越困难。
我不知道为什么我很少将此视为建议,但我会选择您真正喜欢开发的内容。查询语法看起来直观且有趣吗?如果没有,你会讨厌在其中发展。这不是最重要的因素,但我认为应该考虑。
关于nosql - 何时使用什么数据库?即,在选择要使用的数据库时我应该考虑哪些参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13580851/