21

我有巨大的数据库(有点 wordnet),想知道使用 Cassandra 是否更容易而不是MySQL|PostrgreSQL

我一生都在使用MySQLPostrgreSQL而且我可以很容易地用关系代数来思考,但几周前我了解了 Cassandra,它被用于 Facebook 和 Twitter。

是不是更方便?

现在通常使用什么 DBMS 来存储社交网络的数据、对象之间的关系、wordnet?

4

5 回答 5

19

没有什么能比得上银弹解决方案,一切都是为解决特定问题而构建的,并且各有利弊。由您决定 - 您有什么问题陈述以及适合您问题的最佳解决方案。无论您使用 Cassandra (NoSQL) 还是 MySQL (RDBMS),这一切都取决于您的系统需求。以下是有助于您在决定数据库时做出更好决策的输入。

为什么要使用 NoSQL

对于 RDBMS 数据库,选择非常容易,因为该类别中的 MySQL、Oracle、MS SQL、PostgreSQL 等几乎所有数据库都提供了几乎相同类型的面向 ACID 属性的解决方案。对于 NoSQL,决策变得困难,因为每个 NoSQL 数据库都提供不同的解决方案,您必须了解哪一个最适合您的应用程序/系统要求。例如,MongoDB 适合您的系统需要无模式文档存储的用例。HBase 可能适用于搜索引擎、分析日志数据以及任何需要扫描大型二维无连接表的地方。Redis 旨在为各种数据结构(如树、队列、链接列表等)提供内存搜索,非常适合制作实时排行榜、发布-订阅类系统。同样,此类别中还有其他数据库(包括 Cassandra)适合不同的问题。现在让我们转到原始问题,并一一回答。

何时使用 Cassandra

作为 NoSQL 家族的一员,Cassandra 为您要求拥有非常繁重的写入系统并且您希望在存储的数据之上拥有响应迅速的报告系统的问题提供解决方案。考虑 Web 分析的用例,其中为每个请求存储日志数据,并且您希望围绕它构建分析平台,以按小时、按浏览器、按 IP 等实时计算点击量。您可以参考博文 ( http://blogs.shephertz.com/2015/04/22/why-cassandra-excellent-choice-for-realtime-analytics-workload/ ) 以了解有关 Cassandra 适合的用例的更多信息在。

何时使用 RDMS 而不是 Cassandra/NoSQL

Cassandra 基于 NoSQL 数据库,不提供 ACID 和关系数据属性。如果您对 ACID 属性有很强的要求(例如财务数据),Cassandra 将不适合这种情况。显然,您可以解决这个问题,但是您最终会编写大量应用程序代码来处理 ACID 属性,并且会严重影响上市时间。此外,使用 Cassandra 管理这种系统对您来说既复杂又乏味。

于 2015-08-02T08:27:45.090 回答
7

有许多不同风格的“NoSQL”数据库。如果您的应用程序真的很像Wordnet,也许您应该查看诸如Neo4j之类的图形数据库。

于 2010-03-27T18:09:27.683 回答
7

我建议分析您的要求。

  1. 如果您要使用更多集群,则机器采用 NoSQL
  2. 如果您的数据模型很复杂 - 需要高效的结构采用 NoSQL(对列类型没有限制)
  3. 如果您安装在几台没有秤的机器上,并且您不需要多请求的超级性能(例如在社交网络中 - 很多用户发送 http 请求),并且您认为您不涉及可销售性,请使用 RDBMS( Postgres 有一些不错的函数和结构可供您使用,例如数组列类型)。

Cassandra 应该能更好地处理大规模、多用途的数据。neo4j - 对于特殊结构、图表会更好。

于 2010-03-28T13:37:05.483 回答
4

Cassandra 和其他 NoSQL 存储被用于基于社交的网站,因为它们需要大量的基于写入的操作。并不是说 MySQL 和 Postgres 无法做到这一点,而是 NoSQL 通常需要的时间和金钱要少得多。

听起来您可能想看看 Neo4J,就您的对象模型需求而言。

于 2010-03-29T03:25:18.737 回答
0

所有不同的产品,他们都有自己的专业人士和消费者。你需要解决什么样的问题?

巨大的,就像在结核病中一样?

于 2010-03-27T17:56:08.307 回答