【发布时间】:2014-02-22 03:07:57
【问题描述】:
我了解不同解决方案之间的技术差异。但我似乎无法找到不同类型 NoSQL 解决方案的优缺点的具体示例,以及何时使用一种类型而不是另一种类型。
我在网上找到的所有信息都给出了关于何时使用一种类型与另一种类型的非常模糊的建议。而且它们似乎都可以互换使用,但没有明确表明使用其中一种优于另一种的优势。
【问题讨论】:
标签: database nosql cassandra riak
我了解不同解决方案之间的技术差异。但我似乎无法找到不同类型 NoSQL 解决方案的优缺点的具体示例,以及何时使用一种类型而不是另一种类型。
我在网上找到的所有信息都给出了关于何时使用一种类型与另一种类型的非常模糊的建议。而且它们似乎都可以互换使用,但没有明确表明使用其中一种优于另一种的优势。
【问题讨论】:
标签: database nosql cassandra riak
示例: MongoDB、CouchDB
优势:异构数据、工作面向对象、敏捷开发
它们的优点是不需要一致的数据结构。当您的需求和数据库布局不断变化时,或者当您处理属于一起但看起来仍然非常不同的数据集时,它们很有用。如果您有很多表,其中包含名为“key”和“value”的两列,那么这些可能值得研究。
示例: Neo4j、GiraffeDB
优势:数据挖掘
他们的重点是通过数据与其他数据的关系来定义数据。当您有很多具有主键的表时,它们是另外两个表的主键(可能还有一些描述它们之间关系的数据),那么这些可能适合您。
示例: Redis、Cassandra、MemcacheDB
优势:通过已知键快速查找值
它们非常简单,但这使得它们快速且易于使用。如果您不需要存储过程、约束、触发器和所有这些高级数据库功能,而只想快速存储和检索数据,那么这些就是您的最佳选择。
不幸的是,他们认为您确切地知道自己在寻找什么。您需要 User157641 的个人资料吗?没问题,只需要几微秒。但是,如果您想要所有年龄在 16 到 24 岁之间、将“华夫饼”作为他们最喜欢的食物并在过去 24 小时内登录的用户的姓名,该怎么办?倒霉。当您没有特定结果的明确且唯一的密钥时,您无法轻易将其从您的 K-V 存储中取出。
【讨论】:
有一篇很棒的文章描述了nosql数据库的类型以及何时使用什么..阅读this
你会得到很好的理解。
【讨论】: