2010-03-27 65 views
13

我有庞大的数据库(还挺共发现),并想知道,如果它更容易使用,而不是MySQL的卡桑德拉| PostrgreSQLCassandra或MySQL/PostgreSQL?

我所有的生活中,我采用的是MySQL和PostrgreSQL,我可以很容易地认为,在关系代数方面,但几个星期前,我学习了cassandra,并在Facebook和Twitter上使用它。

更方便吗?

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

+0

我觉得这个链接对于决定业务用例的SQL/NoSQL决策是最有用的:http://kkovacs.eu/cassandra-vs-mongodb-vs-couchdb-vs-redis – 2015-08-14 16:01:17

+0

这个问题应该关闭,它不适合SO。 – 2018-02-13 17:08:31

回答

6

“NoSQL”数据库有许多不同的风格。如果你的应用程序真的很喜欢Wordnet,也许你应该看看图形数据库,如Neo4j

0

所有不同的产品,他们都有他们的专业和conn的。你有什么样的问题需要解决?

巨大的,就像在结核病的?

+0

E.g我有这些对象的btw连接对象和权重。我想快速找到所有可能的路径和它们的权重。 – Ivri 2010-03-27 18:28:04

7

我建议分析您的请求。

  1. 如果您正在使用多个群集去,生产的机器的NoSQL
  2. 如果你的数据模型很复杂 - 需要如果你适合在几台机器高效的组织架构采取的NoSQL
  3. (与类型的列没有限制)没有比例尺,你不需要超级性能的多重请求(例如在社交网络 - 很多用户发送http请求),并且你认为你不涉及可销售性采用RDBMS(Postgres有一些好的功能和结构你可以使用它,比如数组列类型)。

卡桑德拉应该更好地处理大规模的数据,多用途。 neo4j - 对特殊结构,图形会更好。

4

Cassandra和其他NoSQL存储正在用于基于社交的网站,因为它们需要大量基于写入的操作。并不是说MySQL和Postgres无法实现这一点,但一般来说,NoSQL需要的时间和金钱要少得多。

听起来像你可能想看看Neo4J,只是根据你的对象模型的需要。

8

没有什么像银色的子弹,一切都是为了解决具体问题而建立的,有其自身的优点和缺点。这取决于你,你有什么问题陈述以及什么最适合解决这个问题。无论您使用Cassandra(NoSQL)还是MySQL(RDBMS),它都是从您的系统需求驱动的。以下是有助于您在决定数据库时做出更好决策的输入。

为什么要使用NoSQL的

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

当使用卡桑德拉

作为NoSQL的家庭的一部分卡桑德拉的问题,在您的要求是有很重的写系统提供解决方案,你想有非常敏感的报告系统上存储的数据的顶。考虑Web分析的用例,其中为每个请求存储日志数据,并且您希望围绕它建立分析平台,以实时方式按小时,浏览器,IP等统计点击次数。你可以参考博客文章(http://blogs.shephertz.com/2015/04/22/why-cassandra-excellent-choice-for-realtime-analytics-workload/)了解更多关于哪里卡桑德拉适合的用例。

何时使用关系数据库管理系统,而不是卡桑德拉/ NoSQL的

Cassandra是基于NoSQL的数据库,而且不提供ACID和关系数据属性。如果你对ACID财产有强烈的要求(例如财务数据),Cassandra就不适合这种情况。很明显,你可以用它来解决问题,但是最终你会写很多应用程序代码来处理ACID属性,并且会很快放弃上市时间。用Cassandra管理这种系统对你来说也是复杂而乏味的。