如何为您的应用程序选择 Cassandra,MongoDB 和 MySQL 中的正确数据库

本贴最后更新于 1787 天前,其中的信息可能已经时移世异

转载于 Dzone

在本文中,我比较了 Cassandra,MongoDB 和 MySQL 数据库中的 ACID 属性,CAP 属性和其他功能,以帮助您为应用程序选择正确的数据库。选择正确的数据库主要取决于应用程序的需求。选择数据库时需要考虑许多因素。在本文中,我主要关注事务方面。

Cassandra:一种以无模式方式存储数据的键值存储。

MongoDB:一个文档数据库,扩展了键值存储的基本思想。

Mysql:一个关系数据库管理系统。

首先,我们来看看 ACID 的可支持性。

什么是 ACID?

ACID:一组保证数据库事务可靠的属性。ACID 代表原子性,一致性,隔离性和耐久性。ACID 属性是数据库的重要组成部分。

通常,大多数关系数据库都支持所有 ACID 属性。但是,NoSQL 数据库对 ACID 有不同程度的支持。Cassandra 和 MongoDB 是 NoSQL 数据库,而 MySQL 是 SQL 数据库。

数据库数据库类型原子性一致性隔离耐久力
卡桑德拉NoSQL的写操作在分区级别是原子的最终/可调行级别写作是持久的
MongoDB的NoSQL的支持单文档原子性支持可调整的支持多种耐用性选项
MySQL的SQLInnoDB存储引擎支持事务原子性InnoDB使用名为doublewrite的文件刷新技术提供不同级别的隔离可以使用可配置参数进行调整

什么是 CAP 定理?

一个描述物理定律如何规定分布式系统必须在所需特征之间进行权衡的定理.CAP 代表一致性,可用性和分区容差。

通常,大多数数据库支持两个 CAP 属性。

有些数据库会努力支持这三种数据库,但它们仍然以某种方式对它们进行优先级排序。例如,Cassandra 提供高可用性和分区容错,并且还使用最终一致性支持一致性。如果您正在寻找高可用性和一致性,那么 MySQL 可能是正确的选择。MongoDB 支持分区容差和一致性。MongoDB 在某种程度上也支持可用性。

最后,让我们比较其他属性

属性卡桑德拉MongoDB的MySQL的
交易回滚没有
写得更快没有
锁定机制没有
表连接没有没有
掌握少建筑没有没有

结论

重要的是要了解您的应用程序的需求。然后,检查哪个数据库与您的要求非常匹配。有时,您可能无法找到可以支持所有要求的综合数据库。在这种情况下,您可能需要权衡某些事项以实现您的首要任务。

  • MySQL

    MySQL 是一个关系型数据库管理系统,由瑞典 MySQL AB 公司开发,目前属于 Oracle 公司。MySQL 是最流行的关系型数据库管理系统之一。

    675 引用 • 535 回帖
  • MongoDB

    MongoDB(来自于英文单词“Humongous”,中文含义为“庞大”)是一个基于分布式文件存储的数据库,由 C++ 语言编写。旨在为应用提供可扩展的高性能数据存储解决方案。MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。它支持的数据结构非常松散,是类似 JSON 的 BSON 格式,因此可以存储比较复杂的数据类型。

    90 引用 • 59 回帖

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...