转载于 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的 | SQL | InnoDB存储引擎支持事务原子性 | InnoDB使用名为doublewrite的文件刷新技术 | 提供不同级别的隔离 | 可以使用可配置参数进行调整 |
什么是 CAP 定理?
一个描述物理定律如何规定分布式系统必须在所需特征之间进行权衡的定理.CAP 代表一致性,可用性和分区容差。
通常,大多数数据库支持两个 CAP 属性。
有些数据库会努力支持这三种数据库,但它们仍然以某种方式对它们进行优先级排序。例如,Cassandra 提供高可用性和分区容错,并且还使用最终一致性支持一致性。如果您正在寻找高可用性和一致性,那么 MySQL 可能是正确的选择。MongoDB 支持分区容差和一致性。MongoDB 在某种程度上也支持可用性。
最后,让我们比较其他属性
属性 | 卡桑德拉 | MongoDB的 | MySQL的 |
交易回滚 | 没有 | 是 | 是 |
写得更快 | 是 | 是 | 没有 |
锁定机制 | 没有 | 是 | 是 |
表连接 | 没有 | 没有 | 是 |
掌握少建筑 | 是 | 没有 | 没有 |
结论
重要的是要了解您的应用程序的需求。然后,检查哪个数据库与您的要求非常匹配。有时,您可能无法找到可以支持所有要求的综合数据库。在这种情况下,您可能需要权衡某些事项以实现您的首要任务。
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于