我读过很多文章,指出 sql 数据库的主要好处是事务机制。
但是从4.2开始,MongoDB支持分片中的ACID事务。
这些交易有什么区别?或者这是否意味着 MongoDB 以与 sql dbs 相同的方式支持事务,而现在 sql dbs 的好处只有一个 - 严格的数据结构?
事务对决:SQL 与 MongoDB
还记得伟大的数据库辩论吗?结构化 SQL 与自由流动的 MongoDB?嗯,你猜怎么着?他们现在都拥有了交易超能力!但在你跟上潮流之前,让我们先澄清一下误会。这些交易不是双胞胎。
SQL 为您提供支持(即跨架构)
想象一下像保镖一样的交易。在 SQL 中,它们是保护整个数据王国的强者——表、数据库、整个工具。他们保证无论如何一切都保持一致。但问题是:这些保镖有一定的领地意识。它们一次只能处理一个分片(认为是数据块)。因此,对于复杂、庞大的数据,它们可能不是最合适的。
MongoDB 的忍者动作(在分片内)
MongoDB 的事务更像是圆滑的忍者。它们快速、高效,并且在单个分片内运行。他们不会锁定一切,因此其他操作仍然可以顺利进行。但就像忍者一样,他们无法看到全貌。如果您的数据遍布各处,它们可能会错过冲突并导致一些数据故障。
在选择数据库冠军之前请阅读本文
那么,谁会赢得交易战呢?这要看情况!
SQL 在以下情况下大放异彩:
MongoDB 在以下情况下占据统治地位:
记住,SQL 中的“严格数据结构”并不是一件坏事。这就像拥有一个井井有条的文件柜——所有东西都很容易找到并且保持整洁。但如果您对不断变化的数据更具有自由精神,MongoDB 的灵活方法可能适合您。
最终,最好的数据库是符合您的特定需求和优先级的数据库。明智的选择,蚱蜢,祝你交易永远成功!