Cassandra还是MySQL/PostgreSQL?

Cassandra还是MySQL/PostgreSQL?,mysql,database,postgresql,cassandra,nosql,Mysql,Database,Postgresql,Cassandra,Nosql,我有一个巨大的数据库(有点像wordnet),我想知道使用Cassandra是否比使用MySQL|PostrgreSQL 在我的一生中,我一直在使用MySQL和PostrgreSQL,我可以很容易地用关系代数来思考问题,但几周前,我了解了Cassandra,并在Facebook和Twitter上使用它 方便吗 现在通常使用什么数据库管理系统来存储社交网络的数据、对象之间的关系、wordnet?所有不同的产品,它们都有自己的专业和专业。你要解决什么样的问题 巨大,就像TB的?有许多不同风格的“No

我有一个巨大的数据库(有点像wordnet),我想知道使用Cassandra是否比使用
MySQL
|
PostrgreSQL

在我的一生中,我一直在使用MySQL和PostrgreSQL,我可以很容易地用关系代数来思考问题,但几周前,我了解了Cassandra,并在Facebook和Twitter上使用它

方便吗


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

所有不同的产品,它们都有自己的专业和专业。你要解决什么样的问题


巨大,就像TB的?

有许多不同风格的“NoSQL”数据库。如果您的应用程序真的像这样,也许您应该查看图形数据库,例如。

我建议您分析您的请求

  • 如果要使用更多集群,那么机器将采用NoSQL
  • 如果您的数据模型很复杂-需要高效的结构,请使用NoSQL(列类型没有限制)
  • 如果你能适应一些没有规模的机器,并且你不需要多个请求的超级性能(比如在社交网络中,很多用户发送http请求),你也不认为你需要RDBMS(Postgres有一些很好的功能和结构,你可以使用,比如数组列类型)
  • Cassandra应能更好地处理大规模数据和多用途数据。
    neo4j-对于特殊的结构和图形来说会更好。

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


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

    没有什么比银弹解决方案更好的了,所有的东西都是为了解决特定的问题而构建的,都有自己的优缺点。这取决于你的决定——你有什么样的问题陈述,什么样的解决方案最适合你的问题。无论您使用Cassandra(NoSQL)还是MySQL(RDBMS),都是根据您的系统需求驱动的。以下是在决定数据库时帮助您做出更好决策的输入

    为什么要使用NoSQL

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

    何时使用Cassandra

    作为NoSQL系列的一部分,Cassandra为以下问题提供了解决方案:您的需求是拥有非常繁重的写入系统,并且希望在存储的数据之上拥有响应速度非常快的报告系统。考虑Web分析的使用情况,其中日志数据被存储在每个请求中,并且希望围绕它建立分析平台,以实时方式计数浏览器、IP等命中次数。您可以参考blog post()来了解更多有关Cassandra适合的用例的信息

    何时使用RDMS而不是Cassandra/NoSQL


    Cassandra基于NoSQL数据库,不提供ACID和关系数据属性。如果您对ACID属性(例如财务数据)有很强的要求,那么Cassandra将不适合这种情况。显然,您可以利用它来完成工作,但最终您将编写大量应用程序代码来处理ACID属性,并且会严重影响到及时上市。另外,使用Cassandra管理此类系统对您来说将是复杂而乏味的。

    例如,我有一组对象和连接的权重,顺便说一下,这些对象。我想通过任意两个对象快速找到所有可能的路径及其权重。我发现这个链接对于决定业务用例的SQL/NoSQL决策最有用:这个问题应该结束,它不适合这样。