![]() |
1
3
在Cassandra的单节点设置中,Cassandra所具有的许多优点都会丢失,所以这样做的主要原因是如果您打算将来扩展到多个节点。在大多数应用程序中,当使用单个节点时,性能会倾向于RDBMS,因为RDBMS是为该环境设计的,并且可以假设所有数据都是本地的。 Cassandra的优势在于可扩展性和可用性。您可以添加节点以增加容量,拥有多个节点意味着您可以处理硬件故障,而不会停机。这些优势是以更困难的模式设计为代价的,因为访问主要基于一致的哈希。这也意味着您没有完整的SQL可用,并且通常必须依赖非规范化技术来支持对数据的快速访问。Cassandra对于ACID事务也很弱,因为在多个节点上协调原子操作本身就很困难。 相比之下,RDBMS是一种更成熟的技术。ACID事务没有问题。模式设计要简单得多,因为您可以向任何列添加有效的索引以优化查询,并且可以使用联接,从而可以在很大程度上消除冗余数据。通过消除冗余数据,可以更容易地保持数据的一致性,因为当某人更改地址时,不需要更新多个数据副本。但是,存储所有数据的单个计算机可能会耗尽空间。如果发生磁盘崩溃,您将需要停机并需要备份来恢复数据,而Cassandra通常可以轻松修复不同步节点上的数据。除了购买一台更快的机器之外,还没有简单的方法来扩展RDBMS以处理更高的事务速率。 还有很多其他的区别,但这些是主要的区别。两者都不是 较好的 但是每一种可能更适合于某些应用。因此,这实际上取决于用例的需求,哪一个更适合。 |
![]() |
hello_programmers · Mysql从其他表输出一列 1 年前 |
![]() |
Community wiki · 这个MySQL语句出了什么问题? 1 年前 |
![]() |
Community wiki · 优化从同一表中提取的多列的查询 1 年前 |
![]() |
Popo · Sql查询:返回数据库中不可用的where条件 1 年前 |
|
Hamdan Nuramdani · 对账单中一周内不同表中的数据求和 1 年前 |
|
Kugelfisch · 用php为数据库加密数据 1 年前 |