我了解不同解决方案之间的技术差异。但是我似乎找不到具体类型的NoSQL解决方案的优缺点以及何时使用另一种类型的具体示例。
我在网上找到的所有信息都对何时使用一种类型与另一种类型提供了非常模糊的建议。而且它们似乎都可以互换使用,而没有清楚表明使用一个相对于另一个的优势。
示例: MongoDB,CouchDB
Strengths:异构数据,面向对象的工作,敏捷开发
它们的优点是它们不需要一致的数据结构。当您的需求(因此数据库布局)不断变化时,或者当您处理属于同一组但看起来仍然非常不同的数据集时,它们很有用。如果您有很多带有两列的表,分别称为“键”和“值”,那么这些表可能值得研究。
示例: Neo4j,GiraffeDB
Strengths:数据挖掘
他们的重点是通过数据与其他数据的关系来定义数据。如果您有很多带有主键的表,这些表是其他两个表的主键(也许还有一些描述它们之间关系的数据),那么这些表可能就很适合您。
示例: Redis,Cassandra,MemcacheDB
Strengths:通过已知键快速查找值
它们非常简单,但这使它们快速且易于使用。如果您不需要存储过程,约束,触发器和所有这些高级数据库功能,而您只想快速存储和检索数据,那么这些就适合您。
[不幸的是,他们认为您完全知道自己要寻找的东西。您需要User157641的个人资料吗?没问题,只需要几微秒。但是,当您希望所有16至24岁的用户的名字都以“华夫饼”作为他们最喜欢的食物并在最近24小时内登录时该怎么办?倒霉。如果您没有针对特定结果的确定且唯一的键,则无法轻松地将其从K-V商店中删除。
有一篇很棒的文章描述了nosql数据库的类型以及何时使用什么。.阅读this
您将获得很好的理解。