在本文中,我比较了卡桑德拉
,MongoDB
和的My的SQL
数据库之间的酸
属性,CAP属性和其他功能,以帮助您为应用程序选择正确的数据库。
选择正确的数据库主要取决于应用程序需求。
选择数据库时需要考虑许多因素。在本文中,我主要关注事务方面。
卡桑德拉
:键值存储,以无模式的方式存储数据。
MongoDB:一个文档数据库,扩展了键值存储的基本概念。
的MySQL
的
:关系数据库管理系统。
首先,让我们看一下ACID的可支持性。
ACID:一组保证数据库事务可靠的属性。
ACID代表原子性,一致性,隔离性和耐久性。
ACID属性是数据库的重要组成部分。
通常,大多数关系数据库都支持所有ACID属性。
但是,没有
SQL
数据库具有对ACID的各种级别的支持。
卡桑德拉
和MongoDB是没有
SQL数据库,而MySQL是SQL数据库。
| 数据库 | 数据库类型 | 原子性 | 一致性 | 隔离 | 耐用性 |
| Cassandra | 没有 SQL |
写操作在分区级别是原子的 | 最终/可调 | 行级 | 写是持久的 |
| MongoDB | 没有 SQL |
支持单文档原子性 | 支持 | 可调式 | 支持多种耐用性选择 |
| MySQL | SQL | InnoDB Storage Engine支持事务原子性 | InnoDB使用一种称为doublewrite的文件刷新技术 | 提供不同级别的隔离 | 可以使用可配置的参数进行调整 |
一个定理,描述了物理定律如何指示分布式系统必须在理想特性之间进行权衡。
CAP代表一致性,可用性和分区容限。
通常,大多数数据库支持两个CAP属性。
一些数据库努力支持这三个数据库,但是它们仍以某种方式确定它们的优先级。
例如,Cassandra提供了高可用性和分区容限,并且还使用最终一致性来支持一致性。
如果您正在寻找高可用性和一致性,那么MySQL可能是正确的选择。
MongoDB支持分区容忍度和一致性。
MongoDB在某种程度上也支持可用性。
最后,让我们比较其他属性
| 物产 | Cassandra | MongoDB | MySQL |
| 交易回滚 | 没有 | 是 | 是 |
| 写得更快 | 是 | 是 | 没有 |
| 锁紧机构 | 没有 | 是 | 是 |
| 表联接 | No | No | 是 |
| 精通建筑 | 是 | No | No |
重要的是要了解您的应用程序的需求。
然后,检查哪个数据库与您的需求紧密匹配。
有时,您可能找不到能够满足您所有需求的全面数据库。
在这种情况下,您可能必须权衡某些事项才能满足您的首要任务。