什么时候应该使用列族NoSQL解决方案与键值,文档存储,图形

use*_*382 2 database cassandra nosql riak

我了解不同解决方案之间的技术差异。但是我似乎找不到具体类型的示例来说明不同类型的NoSQL解决方案的优缺点,以及何时使用一种类型来代替另一种类型。

我在网上找到的所有信息都非常模糊地建议了何时使用一种类型还是另一种类型。而且它们似乎都可以互换使用,而没有清楚地表明使用一个相对于另一个优势。

Phi*_*ipp 5

这是我前一阵子写的博客摘录。

面向文件

示例: MongoDB,CouchDB

优势:异构数据,面向对象的工作,敏捷开发

它们的优点是它们不需要一致的数据结构。当您的需求(因此数据库布局)不断变化时,或者当您处理属于同一组但看起来仍然非常不同的数据集时,它们很有用。如果您有很多表,其中有两列分别称为“键”和“值”,则可能值得研究。

图形数据库

示例: Neo4j,GiraffeDB

优势:数据挖掘

他们的重点是通过与其他数据的关系来定义数据。如果您有很多带有主键的表,这些表是其他两个表的主键(也许还有一些描述它们之间关系的数据),那么这些表可能对您有用。

关键值商店

示例: Redis,Cassandra,MemcacheDB

优点:通过已知键快速查找值

它们非常简单,但这使它们快速且易于使用。如果您不需要存储过程,约束,触发器和所有这些高级数据库功能,而您只想快速存储和检索数据,那么这些就适合您。

不幸的是,他们假设您完全知道您要寻找的东西。您需要User157641的个人资料吗?没问题,只需要几微秒。但是,当您希望所有16至24岁的用户的名字都以“华夫饼”作为他们最喜欢的食物并在最近24小时内登录时该怎么办?倒霉。当您没有确定结果的确定且唯一的键时,就无法轻易地将其从KV商店中删除。

  • Cassandra不是专栏家庭商店吗?(之所以这样问,是因为许多人可能有相同的问题) (3认同)